package at.gv.egovernment.moa.id.auth.builder; import java.security.MessageDigest; import at.gv.egovernment.moa.id.BuildException; import at.gv.egovernment.moa.util.Base64Utils; /** * Builder for the BPK, as defined in * "Ableitung f¨r die bereichsspezifische Personenkennzeichnung" * version 1.0.1 from "reference.e-government.gv.at". * * @author Paul Ivancsics * @version $Id$ */ public class BPKBuilder { /** * Builds the BPK from given parameters. * @param identificationValue Base64 encoded "Stammzahl" * @param target "Verfahrensname"; will be transformed to lower case * @return PBK in a BASE64 encoding * @throws BuildException while building the BPK */ public String buildBPK(String identificationValue, String target) throws BuildException { if (identificationValue == null || identificationValue.length() == 0 || target == null || target.length() == 0) throw new BuildException( "builder.00", new Object[] {"BPK", "Unvollständige Parameterangaben: identificationValue=" + identificationValue + ",target=" + target}); String basisbegriff = identificationValue + "+" + target; try { MessageDigest md = MessageDigest.getInstance("SHA-1"); byte[] hash = md.digest(basisbegriff.getBytes("ISO-8859-1")); String hashBase64 = Base64Utils.encode(hash); return hashBase64; } catch (Exception ex) { throw new BuildException( "builder.00", new Object[] {"BPK", ex.toString()}, ex); } } }