package foobar; import com.microsoft.uprove.IssuerKeyAndParameters; import com.microsoft.uprove.IssuerSetupParameters; import java.security.NoSuchAlgorithmException; import java.security.NoSuchProviderException; public final class IKAPBuilder { private static final String HASH_ALGORITHM = "SHA-256"; private static final byte[] UID_AS_BYTES = "unique UID".getBytes(); private static final byte[] SPECIFICATION_AS_BYTES = "specification".getBytes(); private final IssuerSetupParameters parameters; private IKAPBuilder() { parameters = new IssuerSetupParameters(); /* * All setters below are pretty much hardcoded from the sample code */ parameters.setEncodingBytes(new byte[] { 1, 0 }); parameters.setHashAlgorithmUID(HASH_ALGORITHM); parameters.setParametersUID(UID_AS_BYTES); parameters.setSpecification(SPECIFICATION_AS_BYTES); } public static IKAPBuilder newBuilder() { return new IKAPBuilder(); } public IKAPBuilder havingSupportDevice(final boolean supportDevice) { parameters.setSupportDevice(supportDevice); return this; } public IssuerKeyAndParameters build() throws UProveException { try { return parameters.generate(); } catch (NoSuchProviderException e) { throw new UProveException("cannot build IKAP params", e); } catch (NoSuchAlgorithmException e) { throw new UProveException("cannot build IKAP params", e); } } }