Example usage for org.bouncycastle.pqc.jcajce.spec SPHINCS256KeyGenParameterSpec SPHINCS256KeyGenParameterSpec

List of usage examples for org.bouncycastle.pqc.jcajce.spec SPHINCS256KeyGenParameterSpec SPHINCS256KeyGenParameterSpec

Introduction

In this page you can find the example usage for org.bouncycastle.pqc.jcajce.spec SPHINCS256KeyGenParameterSpec SPHINCS256KeyGenParameterSpec.

Prototype

public SPHINCS256KeyGenParameterSpec(String treeHash) 

Source Link

Document

Specify the treehash, one of SHA512-256, or SHA3-256.

Usage

From source file:com.distrimind.util.crypto.JavaNativeKeyPairGenerator.java

License:Open Source License

@Override
public void initialize(short _keySize, long expirationTime, AbstractSecureRandom _random)
        throws InvalidAlgorithmParameterException {
    this.keySizeBits = _keySize;
    this.expirationTime = expirationTime;
    if (signatureType != null && signatureType.getKeyGeneratorAlgorithmName().equals(
            ASymmetricAuthenticatedSignatureType.BCPQC_SPHINCS256_SHA3_512.getKeyGeneratorAlgorithmName())) {
        this.keySizeBits = signatureType.getDefaultKeySize();
        keyPairGenerator.initialize(new SPHINCS256KeyGenParameterSpec(SPHINCS256KeyGenParameterSpec.SHA3_256),
                _random.getJavaNativeSecureRandom());
    } else if (signatureType != null && signatureType.getKeyGeneratorAlgorithmName()
            .equals(ASymmetricAuthenticatedSignatureType.BCPQC_SPHINCS256_SHA2_512_256
                    .getKeyGeneratorAlgorithmName())) {
        this.keySizeBits = signatureType.getDefaultKeySize();
        keyPairGenerator.initialize(new SPHINCS256KeyGenParameterSpec(SPHINCS256KeyGenParameterSpec.SHA512_256),
                _random.getJavaNativeSecureRandom());
    } else if (signatureType == null || signatureType.getCurveName() == null)
        keyPairGenerator.initialize(new RSAKeyGenParameterSpec(_keySize, RSAKeyGenParameterSpec.F4),
                _random.getJavaNativeSecureRandom());
    else {//w  ww . ja  v  a2 s .co m
        switch (signatureType.getCurveName()) {
        case "P-256":
        case "P-384":
        case "P-521":
            this.keySizeBits = signatureType.getDefaultKeySize();
            keyPairGenerator.initialize(new ECGenParameterSpec(signatureType.getCurveName()),
                    _random.getJavaNativeSecureRandom());
            break;
        case "curve25519":
            this.keySizeBits = signatureType.getDefaultKeySize();

            keyPairGenerator.initialize(ASymmetricEncryptionType.getCurve25519(),
                    _random.getJavaNativeSecureRandom());
            break;
        case "Ed25519":
        case "Ed448":
        case "X25519":
        case "X448":
            keyPairGenerator.initialize(signatureType.getDefaultKeySize(), _random.getJavaNativeSecureRandom());
            break;
        //keyPairGenerator.initialize(getXDHAlgorithmParameterSpec(signatureType.getCurveName()));
        //break;

        /*case "M221":
        case "M383":
        case "M511":
        case "curve41417":
           this.keySizeBits = signatureType.getDefaultKeySize();
           X9ECParameters ecP = CustomNamedCurves.getByName(signatureType.getCurveName());
           keyPairGenerator.initialize(new org.bouncycastle.jce.spec.ECParameterSpec(ecP.getCurve(), ecP.getG(),
             ecP.getN(), ecP.getH(), ecP.getSeed()), _random.getJavaNativeSecureRandom());
           break;*/
        default:
            throw new InternalError();

        }
    }
    /*this.keySizeBits=signatureType.getDefaultKeySize();
    keyPairGenerator.initialize(new ECGenParameterSpec(signatureType.getCurveName()), _random.getJavaNativeSecureRandom());
    if (signatureType!=null && (signatureType.getKeyGeneratorAlgorithmName().equals(ASymmetricAuthenticatedSignatureType.BC_FIPS_SHA256withECDSA_P_256.getKeyGeneratorAlgorithmName())
    || signatureType.getKeyGeneratorAlgorithmName().equals(ASymmetricAuthenticatedSignatureType.BC_FIPS_SHA384withECDSA_P_384.getKeyGeneratorAlgorithmName())
          || signatureType.getKeyGeneratorAlgorithmName().equals(ASymmetricAuthenticatedSignatureType.BC_FIPS_SHA512withECDSA_P_521.getKeyGeneratorAlgorithmName())))
    {
       if (_keySize<256)
       {
    this.keySizeBits=224;
    keyPairGenerator.initialize(new ECGenParameterSpec("P-224"), _random.getJavaNativeSecureRandom());
       }
       else if (_keySize<(384-256)/2)
       {
    this.keySizeBits=256;
    keyPairGenerator.initialize(new ECGenParameterSpec("P-256"), _random.getJavaNativeSecureRandom());
       }
       else if (_keySize<(521-384)/2)
       {
    this.keySizeBits=384;
    keyPairGenerator.initialize(new ECGenParameterSpec("P-384"), _random.getJavaNativeSecureRandom());
       }
       else
       {
    this.keySizeBits=521;
    keyPairGenerator.initialize(new ECGenParameterSpec("P-521"), _random.getJavaNativeSecureRandom());
       }
    }
    else if (signatureType!=null && (signatureType.getKeyGeneratorAlgorithmName().equals(ASymmetricAuthenticatedSignatureType.BC_SHA256withECDSA_CURVE_25519.getKeyGeneratorAlgorithmName())
    || signatureType.getKeyGeneratorAlgorithmName().equals(ASymmetricAuthenticatedSignatureType.BC_SHA384withECDSA_CURVE_25519.getKeyGeneratorAlgorithmName())
    || signatureType.getKeyGeneratorAlgorithmName().equals(ASymmetricAuthenticatedSignatureType.BC_SHA512withECDSA_CURVE_25519.getKeyGeneratorAlgorithmName())))
    {
       this.keySizeBits=signatureType.getDefaultKeySize();
            
       keyPairGenerator.initialize(ASymmetricEncryptionType.getCurve25519(), _random.getJavaNativeSecureRandom());
    }
    else if (signatureType!=null && (signatureType.getKeyGeneratorAlgorithmName().equals(ASymmetricAuthenticatedSignatureType.BC_SHA256withECDSA_CURVE_M_221.getKeyGeneratorAlgorithmName())
    || signatureType.getKeyGeneratorAlgorithmName().equals(ASymmetricAuthenticatedSignatureType.BC_SHA384withECDSA_CURVE_M_221.getKeyGeneratorAlgorithmName())
    || signatureType.getKeyGeneratorAlgorithmName().equals(ASymmetricAuthenticatedSignatureType.BC_SHA512withECDSA_CURVE_M_221.getKeyGeneratorAlgorithmName())))
    {
            
       this.keySizeBits=signatureType.getDefaultKeySize();
       X9ECParameters ecP = CustomNamedCurves.getByName("M-221");
       keyPairGenerator.initialize(new org.bouncycastle.jce.spec.ECParameterSpec(ecP.getCurve(), ecP.getG(),
       ecP.getN(), ecP.getH(), ecP.getSeed()), _random.getJavaNativeSecureRandom());
    }
    else if (signatureType!=null && (signatureType.getKeyGeneratorAlgorithmName().equals(ASymmetricAuthenticatedSignatureType.BC_SHA256withECDSA_CURVE_M_383.getKeyGeneratorAlgorithmName())
    || signatureType.getKeyGeneratorAlgorithmName().equals(ASymmetricAuthenticatedSignatureType.BC_SHA384withECDSA_CURVE_M_383.getKeyGeneratorAlgorithmName())
    || signatureType.getKeyGeneratorAlgorithmName().equals(ASymmetricAuthenticatedSignatureType.BC_SHA512withECDSA_CURVE_M_383.getKeyGeneratorAlgorithmName())))
    {
       this.keySizeBits=signatureType.getDefaultKeySize();
       X9ECParameters ecP = CustomNamedCurves.getByName("M-383");
       keyPairGenerator.initialize(new org.bouncycastle.jce.spec.ECParameterSpec(ecP.getCurve(), ecP.getG(),
       ecP.getN(), ecP.getH(), ecP.getSeed()), _random.getJavaNativeSecureRandom());
    }
    else if (signatureType!=null && (signatureType.getKeyGeneratorAlgorithmName().equals(ASymmetricAuthenticatedSignatureType.BC_SHA256withECDSA_CURVE_M_511.getKeyGeneratorAlgorithmName())
    || signatureType.getKeyGeneratorAlgorithmName().equals(ASymmetricAuthenticatedSignatureType.BC_SHA384withECDSA_CURVE_M_511.getKeyGeneratorAlgorithmName())
    || signatureType.getKeyGeneratorAlgorithmName().equals(ASymmetricAuthenticatedSignatureType.BC_SHA512withECDSA_CURVE_M_511.getKeyGeneratorAlgorithmName())))
    {
       this.keySizeBits=signatureType.getDefaultKeySize();
       X9ECParameters ecP = CustomNamedCurves.getByName("M-511");
       keyPairGenerator.initialize(new org.bouncycastle.jce.spec.ECParameterSpec(ecP.getCurve(), ecP.getG(),
       ecP.getN(), ecP.getH(), ecP.getSeed()), _random.getJavaNativeSecureRandom());
    }
    else if (signatureType!=null && (signatureType.getKeyGeneratorAlgorithmName().equals(ASymmetricAuthenticatedSignatureType.BC_SHA256withECDSA_CURVE_41417.getKeyGeneratorAlgorithmName())
    || signatureType.getKeyGeneratorAlgorithmName().equals(ASymmetricAuthenticatedSignatureType.BC_SHA384withECDSA_CURVE_41417.getKeyGeneratorAlgorithmName())
    || signatureType.getKeyGeneratorAlgorithmName().equals(ASymmetricAuthenticatedSignatureType.BC_SHA512withECDSA_CURVE_41417.getKeyGeneratorAlgorithmName())))
    {
       this.keySizeBits=signatureType.getDefaultKeySize();
       X9ECParameters ecP = CustomNamedCurves.getByName("curve41417");
       keyPairGenerator.initialize(new org.bouncycastle.jce.spec.ECParameterSpec(ecP.getCurve(), ecP.getG(),
       ecP.getN(), ecP.getH(), ecP.getSeed()), _random.getJavaNativeSecureRandom());
    }
    else if (signatureType!=null && signatureType.getKeyGeneratorAlgorithmName().equals(ASymmetricAuthenticatedSignatureType.BCPQC_SPHINCS256_SHA3_512.getKeyGeneratorAlgorithmName()))
    {
       this.keySizeBits=signatureType.getDefaultKeySize();
       keyPairGenerator.initialize(new SPHINCS256KeyGenParameterSpec(SPHINCS256KeyGenParameterSpec.SHA3_256), _random.getJavaNativeSecureRandom());
    }
    else if (signatureType!=null && signatureType.getKeyGeneratorAlgorithmName().equals(ASymmetricAuthenticatedSignatureType.BCPQC_SPHINCS256_SHA2_512_256.getKeyGeneratorAlgorithmName()))
    {
       this.keySizeBits=signatureType.getDefaultKeySize();
       keyPairGenerator.initialize(new SPHINCS256KeyGenParameterSpec(SPHINCS256KeyGenParameterSpec.SHA512_256), _random.getJavaNativeSecureRandom());
    }
    else
       keyPairGenerator.initialize(new RSAKeyGenParameterSpec(_keySize, RSAKeyGenParameterSpec.F4), _random.getJavaNativeSecureRandom());*/

}