use of com.github.zhenwei.core.pqc.crypto.sphincs.SPHINCS256KeyGenerationParameters in project LinLong-Java by zhenwei1108.
the class Sphincs256KeyPairGeneratorSpi method initialize.
public void initialize(AlgorithmParameterSpec params, SecureRandom random) throws InvalidAlgorithmParameterException {
if (!(params instanceof SPHINCS256KeyGenParameterSpec)) {
throw new InvalidAlgorithmParameterException("parameter object not a SPHINCS256KeyGenParameterSpec");
}
SPHINCS256KeyGenParameterSpec sphincsParams = (SPHINCS256KeyGenParameterSpec) params;
if (sphincsParams.getTreeDigest().equals(SPHINCS256KeyGenParameterSpec.SHA512_256)) {
treeDigest = NISTObjectIdentifiers.id_sha512_256;
param = new SPHINCS256KeyGenerationParameters(random, new SHA512tDigest(256));
} else if (sphincsParams.getTreeDigest().equals(SPHINCS256KeyGenParameterSpec.SHA3_256)) {
treeDigest = NISTObjectIdentifiers.id_sha3_256;
param = new SPHINCS256KeyGenerationParameters(random, new SHA3Digest(256));
}
engine.init(param);
initialised = true;
}
use of com.github.zhenwei.core.pqc.crypto.sphincs.SPHINCS256KeyGenerationParameters in project LinLong-Java by zhenwei1108.
the class Sphincs256KeyPairGeneratorSpi method generateKeyPair.
public KeyPair generateKeyPair() {
if (!initialised) {
param = new SPHINCS256KeyGenerationParameters(random, new SHA512tDigest(256));
engine.init(param);
initialised = true;
}
AsymmetricCipherKeyPair pair = engine.generateKeyPair();
SPHINCSPublicKeyParameters pub = (SPHINCSPublicKeyParameters) pair.getPublic();
SPHINCSPrivateKeyParameters priv = (SPHINCSPrivateKeyParameters) pair.getPrivate();
return new KeyPair(new BCSphincs256PublicKey(treeDigest, pub), new BCSphincs256PrivateKey(treeDigest, priv));
}
Aggregations