/** * Initialize the generator with a security category and a source of randomness. * * @param param a {@link QTESLAKeyGenerationParameters} object. */ public void init( KeyGenerationParameters param) { QTESLAKeyGenerationParameters parameters = (QTESLAKeyGenerationParameters)param; this.secureRandom = parameters.getRandom(); this.securityCategory = parameters.getSecurityCategory(); }
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; }
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)); } }