PKCS#11 structure:
typedef struct CK_PBE_PARAMS { CK_CHAR_PTR pInitVector; CK_CHAR_PTR pPassword; CK_ULONG ulPasswordLen; CK_CHAR_PTR pSalt; CK_ULONG ulSaltLen; CK_ULONG ulIteration; } CK_PBE_PARAMS;
593594595596597598599600601602603
final InputStream config = new ByteArrayInputStream( new StringBuilder().append("name=").append(name).append("\n") .append("library=").append(library) .toString().getBytes()); Provider provider = new SunPKCS11(config); Security.addProvider(provider); final KeyStore.Builder builder = KeyStore.Builder.newInstance("PKCS11", provider, callbackHandlerProtection);
3233343536373839404142
public class ProviderLoader { public static void go(final String config) throws Exception { AccessController.doPrivileged(new PrivilegedAction() { public Object run() { SunPKCS11 provider = new SunPKCS11(config); Security.addProvider(provider); return null; } }); }
739740741742743744745746747748749
} } private void parseAttributes(String keyword) throws IOException { if (templateManager == null) { templateManager = new TemplateManager(); } int token = nextToken(); if (token == '=') { String s = parseWord(); if (s.equals("compatibility") == false) {