Search in sources :

Example 1 with SHA512tDigest

use of com.github.zhenwei.core.crypto.digests.SHA512tDigest 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;
}
Also used : SHA512tDigest(com.github.zhenwei.core.crypto.digests.SHA512tDigest) SHA3Digest(com.github.zhenwei.core.crypto.digests.SHA3Digest) InvalidAlgorithmParameterException(java.security.InvalidAlgorithmParameterException) SPHINCS256KeyGenParameterSpec(com.github.zhenwei.provider.jcajce.spec.SPHINCS256KeyGenParameterSpec) SPHINCS256KeyGenerationParameters(com.github.zhenwei.core.pqc.crypto.sphincs.SPHINCS256KeyGenerationParameters)

Example 2 with SHA512tDigest

use of com.github.zhenwei.core.crypto.digests.SHA512tDigest 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));
}
Also used : SHA512tDigest(com.github.zhenwei.core.crypto.digests.SHA512tDigest) KeyPair(java.security.KeyPair) AsymmetricCipherKeyPair(com.github.zhenwei.core.crypto.AsymmetricCipherKeyPair) SPHINCS256KeyGenerationParameters(com.github.zhenwei.core.pqc.crypto.sphincs.SPHINCS256KeyGenerationParameters) SPHINCSPrivateKeyParameters(com.github.zhenwei.core.pqc.crypto.sphincs.SPHINCSPrivateKeyParameters) SPHINCSPublicKeyParameters(com.github.zhenwei.core.pqc.crypto.sphincs.SPHINCSPublicKeyParameters) AsymmetricCipherKeyPair(com.github.zhenwei.core.crypto.AsymmetricCipherKeyPair)

Example 3 with SHA512tDigest

use of com.github.zhenwei.core.crypto.digests.SHA512tDigest in project LinLong-Java by zhenwei1108.

the class Fingerprint method calculateFingerprintSHA512_160.

/**
 * Return a byte array containing a calculated fingerprint for the passed in input data. The
 * fingerprint is based on SHA512/160.
 *
 * @param input data to base the fingerprint on.
 * @return a byte array containing a 20 byte fingerprint.
 * @deprecated use the SHAKE based version.
 */
public static byte[] calculateFingerprintSHA512_160(byte[] input) {
    SHA512tDigest digest = new SHA512tDigest(160);
    digest.update(input, 0, input.length);
    byte[] rv = new byte[digest.getDigestSize()];
    digest.doFinal(rv, 0);
    return rv;
}
Also used : SHA512tDigest(com.github.zhenwei.core.crypto.digests.SHA512tDigest)

Aggregations

SHA512tDigest (com.github.zhenwei.core.crypto.digests.SHA512tDigest)3 SPHINCS256KeyGenerationParameters (com.github.zhenwei.core.pqc.crypto.sphincs.SPHINCS256KeyGenerationParameters)2 AsymmetricCipherKeyPair (com.github.zhenwei.core.crypto.AsymmetricCipherKeyPair)1 SHA3Digest (com.github.zhenwei.core.crypto.digests.SHA3Digest)1 SPHINCSPrivateKeyParameters (com.github.zhenwei.core.pqc.crypto.sphincs.SPHINCSPrivateKeyParameters)1 SPHINCSPublicKeyParameters (com.github.zhenwei.core.pqc.crypto.sphincs.SPHINCSPublicKeyParameters)1 SPHINCS256KeyGenParameterSpec (com.github.zhenwei.provider.jcajce.spec.SPHINCS256KeyGenParameterSpec)1 InvalidAlgorithmParameterException (java.security.InvalidAlgorithmParameterException)1 KeyPair (java.security.KeyPair)1