public KeyPair generateKeyPair() { if (!initialised) { param = new QTESLAKeyGenerationParameters(QTESLASecurityCategory.PROVABLY_SECURE_I, random); engine.init(param); initialised = true; } AsymmetricCipherKeyPair pair = engine.generateKeyPair(); QTESLAPublicKeyParameters pub = (QTESLAPublicKeyParameters)pair.getPublic(); QTESLAPrivateKeyParameters priv = (QTESLAPrivateKeyParameters)pair.getPrivate(); return new KeyPair(new BCqTESLAPublicKey(pub), new BCqTESLAPrivateKey(priv)); } }
byte[] privateKey = allocatePrivate(securityCategory); byte[] publicKey = allocatePublic(securityCategory);
public void initialize( AlgorithmParameterSpec params, SecureRandom random) throws InvalidAlgorithmParameterException { if (!(params instanceof QTESLAParameterSpec)) { throw new InvalidAlgorithmParameterException("parameter object not a QTESLAParameterSpec"); } QTESLAParameterSpec qteslaParams = (QTESLAParameterSpec)params; param = new QTESLAKeyGenerationParameters(((Integer)catLookup.get(qteslaParams.getSecurityCategory())).intValue(), random); engine.init(param); initialised = true; }