/** * 加密 * * @param data 被加密的bytes * @param keyType 私钥或公钥 {@link KeyType} * @return 加密后的bytes * @throws CryptoException 包括InvalidKeyException和InvalidCipherTextException的包装异常 */ @Override public byte[] encrypt(byte[] data, KeyType keyType) throws CryptoException { lock.lock(); if (null == this.engine) { this.engine = new SM2Engine(); } final SM2Engine engine = this.engine; try { engine.init(true, new ParametersWithRandom(generateCipherParameters(keyType))); return engine.processBlock(data, 0, data.length); } catch (Exception e) { throw new CryptoException(e); } finally { lock.unlock(); } }
/** * 加密 * * @param data 被加密的bytes * @param keyType 私钥或公钥 {@link KeyType} * @return 加密后的bytes * @throws CryptoException 包括InvalidKeyException和InvalidCipherTextException的包装异常 */ @Override public byte[] encrypt(byte[] data, KeyType keyType) throws CryptoException { lock.lock(); if (null == this.engine) { this.engine = new SM2Engine(); } final SM2Engine engine = this.engine; try { engine.init(true, new ParametersWithRandom(generateCipherParameters(keyType))); return engine.processBlock(data, 0, data.length); } catch (Exception e) { throw new CryptoException(e); } finally { lock.unlock(); } }
/** * 用私钥对信息生成数字签名 * * @param data 加密数据 * @param id 可以为null,若为null,则默认withId为字节数组:"1234567812345678".getBytes() * @return 签名 */ public byte[] sign(byte[] data, byte[] id) { lock.lock(); if (null == this.signer) { this.signer = new SM2Signer(); } final SM2Signer signer = this.signer; try { CipherParameters param = new ParametersWithRandom(generateCipherParameters(KeyType.PrivateKey)); if (id != null) { param = new ParametersWithID(param, id); } signer.init(true, param); signer.update(data, 0, data.length); return signer.generateSignature(); } catch (Exception e) { throw new CryptoException(e); } finally { lock.unlock(); } }
/** * 用私钥对信息生成数字签名 * * @param data 加密数据 * @param id 可以为null,若为null,则默认withId为字节数组:"1234567812345678".getBytes() * @return 签名 */ public byte[] sign(byte[] data, byte[] id) { lock.lock(); if (null == this.signer) { this.signer = new SM2Signer(); } final SM2Signer signer = this.signer; try { CipherParameters param = new ParametersWithRandom(generateCipherParameters(KeyType.PrivateKey)); if (id != null) { param = new ParametersWithID(param, id); } signer.init(true, param); signer.update(data, 0, data.length); return signer.generateSignature(); } catch (Exception e) { throw new CryptoException(e); } finally { lock.unlock(); } }
protected void initCipherEncrypt(Key key, AlgorithmParameterSpec params, SecureRandom sr) throws InvalidKeyException, InvalidAlgorithmParameterException { CipherParameters param; param = McElieceKeysToParams.generatePublicKeyParameter((PublicKey)key); param = new ParametersWithRandom(param, sr); cipher.init(true, param); this.maxPlainTextSize = cipher.maxPlainTextSize; this.cipherTextSize = cipher.cipherTextSize; }
public Signer createSigner(SignatureAndHashAlgorithm algorithm, AsymmetricKeyParameter privateKey) { return makeSigner(algorithm, false, true, new ParametersWithRandom(privateKey, this.context.getSecureRandom())); }
public Signer createSigner(SignatureAndHashAlgorithm algorithm, AsymmetricKeyParameter privateKey) { return makeSigner(algorithm, false, true, new ParametersWithRandom(privateKey, this.context.getSecureRandom())); }
/** * Initialize the signer. * * @param forSigning Whether to initialize signer for the sign operation. * @param params BC cipher parameters. */ protected void init(final boolean forSigning, final CipherParameters params) { if (forSigning && randomProvider != null) { signer.init(forSigning, new ParametersWithRandom(params, randomProvider)); } else { signer.init(forSigning, params); } }
/** * Initialize the signer. * * @param forSigning Whether to initialize signer for the sign operation. * @param params BC cipher parameters. */ protected void init(final boolean forSigning, final CipherParameters params) { if (randomProvider != null) { signer.init(forSigning, new ParametersWithRandom(params, randomProvider)); } else { signer.init(forSigning, params); } }
/** * Initialize the signer. * * @param forSigning Whether to initialize signer for the sign operation. * @param params BC cipher parameters. */ protected void init(final boolean forSigning, final CipherParameters params) { if (forSigning && randomProvider != null) { signer.init(forSigning, new ParametersWithRandom(params, randomProvider)); } else { signer.init(forSigning, params); } }
/** * ECC公钥加密 * * @param pubKeyParameters ECC公钥 * @param srcData 源数据 * @return SM2密文,实际包含三部分:ECC公钥、真正的密文、公钥和原文的SM3-HASH值 * @throws InvalidCipherTextException */ public static byte[] encrypt(ECPublicKeyParameters pubKeyParameters, byte[] srcData) throws InvalidCipherTextException { SM2Engine engine = new SM2Engine(); ParametersWithRandom pwr = new ParametersWithRandom(pubKeyParameters, new SecureRandom()); engine.init(true, pwr); return engine.processBlock(srcData, 0, srcData.length); }
protected void initCipherEncrypt(Key key, AlgorithmParameterSpec params, SecureRandom sr) throws InvalidKeyException, InvalidAlgorithmParameterException { buf.reset(); CipherParameters param; param = McElieceCCA2KeysToParams.generatePublicKeyParameter((PublicKey)key); param = new ParametersWithRandom(param, sr); digest.reset(); cipher.init(true, param); }
protected void engineInitSign( PrivateKey privateKey) throws InvalidKeyException { CipherParameters param = DSAUtil.generatePrivateKeyParameter(privateKey); if (random != null) { param = new ParametersWithRandom(param, random); } digest.reset(); signer.init(true, param); }
protected void engineInitSign(PrivateKey privateKey) throws InvalidKeyException { CipherParameters param; param = RainbowKeysToParams.generatePrivateKeyParameter(privateKey); if (random != null) { param = new ParametersWithRandom(param, random); } digest.reset(); signer.init(true, param); }
protected void initCipherEncrypt(Key key, AlgorithmParameterSpec params, SecureRandom sr) throws InvalidKeyException, InvalidAlgorithmParameterException { CipherParameters param; param = McElieceCCA2KeysToParams.generatePublicKeyParameter((PublicKey)key); param = new ParametersWithRandom(param, sr); digest.reset(); cipher.init(true, param); }
protected void initCipherEncrypt(Key key, AlgorithmParameterSpec params, SecureRandom sr) throws InvalidKeyException, InvalidAlgorithmParameterException { CipherParameters param; param = McElieceCCA2KeysToParams.generatePublicKeyParameter((PublicKey)key); param = new ParametersWithRandom(param, sr); digest.reset(); cipher.init(true, param); }
public byte[] generateRawSignature(SignatureAndHashAlgorithm algorithm, AsymmetricKeyParameter privateKey, byte[] hash) throws CryptoException { Signer signer = makeSigner(algorithm, true, true, new ParametersWithRandom(privateKey, this.context.getSecureRandom())); signer.update(hash, 0, hash.length); return signer.generateSignature(); }
public byte[] generateRawSignature(SignatureAndHashAlgorithm algorithm, AsymmetricKeyParameter privateKey, byte[] hash) throws CryptoException { Signer signer = makeSigner(algorithm, true, true, new ParametersWithRandom(privateKey, this.context.getSecureRandom())); signer.update(hash, 0, hash.length); return signer.generateSignature(); }
protected void engineInitSign( PrivateKey privateKey, SecureRandom random) throws InvalidKeyException { if (!(privateKey instanceof RSAPrivateKey)) { throw new InvalidKeyException("Supplied key is not a RSAPrivateKey instance"); } key = RSAUtil.generatePrivateKeyParameter((RSAPrivateKey)privateKey); pss = new org.bouncycastle.crypto.signers.PSSSigner(signer, contentDigest, mgfDigest, saltLength, trailer); pss.init(true, new ParametersWithRandom(key, random)); isInitState = true; }
protected void engineInitSign( PrivateKey privateKey) throws InvalidKeyException { CipherParameters param = ECUtil.generatePrivateKeyParameter(privateKey); digest.reset(); if (appRandom != null) { signer.init(true, new ParametersWithRandom(param, appRandom)); } else { signer.init(true, param); } }