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);
}
}
}