• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

Java EphemeralKeyPairGenerator类代码示例

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

本文整理汇总了Java中org.spongycastle.crypto.generators.EphemeralKeyPairGenerator的典型用法代码示例。如果您正苦于以下问题:Java EphemeralKeyPairGenerator类的具体用法?Java EphemeralKeyPairGenerator怎么用?Java EphemeralKeyPairGenerator使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。



EphemeralKeyPairGenerator类属于org.spongycastle.crypto.generators包,在下文中一共展示了EphemeralKeyPairGenerator类的8个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Java代码示例。

示例1: encryptSimple

import org.spongycastle.crypto.generators.EphemeralKeyPairGenerator; //导入依赖的package包/类
/**
 *  Encryption equivalent to the Crypto++ default ECIES<ECP> settings:
 *
 *  DL_KeyAgreementAlgorithm:        DL_KeyAgreementAlgorithm_DH<struct ECPPoint,struct EnumToType<enum CofactorMultiplicationOption,0> >
 *  DL_KeyDerivationAlgorithm:       DL_KeyDerivationAlgorithm_P1363<struct ECPPoint,0,class P1363_KDF2<class SHA1> >
 *  DL_SymmetricEncryptionAlgorithm: DL_EncryptionAlgorithm_Xor<class HMAC<class SHA1>,0>
 *  DL_PrivateKey:                   DL_Key<ECPPoint>
 *  DL_PrivateKey_EC<class ECP>
 *
 *  Used for Whisper V3
 */
public static byte[] encryptSimple(ECPoint pub, byte[] plaintext) throws IOException, InvalidCipherTextException {
    EthereumIESEngine iesEngine = new EthereumIESEngine(
            new ECDHBasicAgreement(),
            new MGF1BytesGeneratorExt(new SHA1Digest(), 1),
            new HMac(new SHA1Digest()),
            new SHA1Digest(),
            null);

    IESParameters p = new IESParameters(null, null, KEY_SIZE);
    ParametersWithIV parametersWithIV = new ParametersWithIV(p, new byte[0]);

    iesEngine.setHashMacKey(false);

    ECKeyPairGenerator eGen = new ECKeyPairGenerator();
    SecureRandom random = new SecureRandom();
    KeyGenerationParameters gParam = new ECKeyGenerationParameters(CURVE, random);
    eGen.init(gParam);

    EphemeralKeyPairGenerator ephemeralKeyPairGenerator =
            new EphemeralKeyPairGenerator(/*testGen*/eGen, new ECIESPublicKeyEncoder());

    iesEngine.init(new ECPublicKeyParameters(pub, CURVE), parametersWithIV, ephemeralKeyPairGenerator);

    return iesEngine.processBlock(plaintext, 0, plaintext.length);
}
 
开发者ID:rsksmart,项目名称:rskj,代码行数:37,代码来源:ECIESCoder.java


示例2: init

import org.spongycastle.crypto.generators.EphemeralKeyPairGenerator; //导入依赖的package包/类
/**
 * Initialise the encryptor.
 *
 * @param publicKey      the recipient's/sender's public key parameters
 * @param params         encoding and derivation parameters, may be wrapped to include an IV for an underlying block cipher.
 * @param ephemeralKeyPairGenerator             the ephemeral key pair generator to use.
 */
public void init(AsymmetricKeyParameter publicKey, CipherParameters params, EphemeralKeyPairGenerator ephemeralKeyPairGenerator)
{
    this.forEncryption = true;
    this.pubParam = publicKey;
    this.keyPairGenerator = ephemeralKeyPairGenerator;

    extractParams(params);
}
 
开发者ID:talentchain,项目名称:talchain,代码行数:16,代码来源:EthereumIESEngine.java


示例3: encryptSimple

import org.spongycastle.crypto.generators.EphemeralKeyPairGenerator; //导入依赖的package包/类
/**
     *  Encryption equivalent to the Crypto++ default ECIES<ECP> settings:
     *
     *  DL_KeyAgreementAlgorithm:        DL_KeyAgreementAlgorithm_DH<struct ECPPoint,struct EnumToType<enum CofactorMultiplicationOption,0> >
     *  DL_KeyDerivationAlgorithm:       DL_KeyDerivationAlgorithm_P1363<struct ECPPoint,0,class P1363_KDF2<class SHA1> >
     *  DL_SymmetricEncryptionAlgorithm: DL_EncryptionAlgorithm_Xor<class HMAC<class SHA1>,0>
     *  DL_PrivateKey:                   DL_Key<ECPPoint>
     *  DL_PrivateKey_EC<class ECP>
     *
     *  Used for Whisper V3
     */
    public static byte[] encryptSimple(ECPoint pub, byte[] plaintext) throws IOException, InvalidCipherTextException {
        EthereumIESEngine iesEngine = new EthereumIESEngine(
                new ECDHBasicAgreement(),
                new MGF1BytesGeneratorExt(new SHA1Digest(), 1),
                new HMac(new SHA1Digest()),
                new SHA1Digest(),
                null);

        IESParameters p = new IESParameters(null, null, KEY_SIZE);
        ParametersWithIV parametersWithIV = new ParametersWithIV(p, new byte[0]);

        iesEngine.setHashMacKey(false);

        ECKeyPairGenerator eGen = new ECKeyPairGenerator();
        SecureRandom random = new SecureRandom();
        KeyGenerationParameters gParam = new ECKeyGenerationParameters(CURVE, random);
        eGen.init(gParam);

//        AsymmetricCipherKeyPairGenerator testGen = new AsymmetricCipherKeyPairGenerator() {
//            ECKey priv = ECKey.fromPrivate(Hex.decode("d0b043b4c5d657670778242d82d68a29d25d7d711127d17b8e299f156dad361a"));
//
//            @Override
//            public void init(KeyGenerationParameters keyGenerationParameters) {
//            }
//
//            @Override
//            public AsymmetricCipherKeyPair generateKeyPair() {
//                return new AsymmetricCipherKeyPair(new ECPublicKeyParameters(priv.getPubKeyPoint(), CURVE),
//                        new ECPrivateKeyParameters(priv.getPrivKey(), CURVE));
//            }
//        };

        EphemeralKeyPairGenerator ephemeralKeyPairGenerator =
                new EphemeralKeyPairGenerator(/*testGen*/eGen, new ECIESPublicKeyEncoder());

        iesEngine.init(new ECPublicKeyParameters(pub, CURVE), parametersWithIV, ephemeralKeyPairGenerator);

        return iesEngine.processBlock(plaintext, 0, plaintext.length);
    }
 
开发者ID:talentchain,项目名称:talchain,代码行数:51,代码来源:ECIESCoder.java


示例4: MessageEncrypter

import org.spongycastle.crypto.generators.EphemeralKeyPairGenerator; //导入依赖的package包/类
MessageEncrypter(SecureRandom random) {
	generator = new ECKeyPairGenerator();
	generator.init(new ECKeyGenerationParameters(PARAMETERS, random));
	parser = new Sec1KeyParser(PARAMETERS, MESSAGE_KEY_BITS);
	KeyEncoder encoder = new PublicKeyEncoder();
	ephemeralGenerator = new EphemeralKeyPairGenerator(generator, encoder);
	ephemeralParser = new PublicKeyParser(PARAMETERS);
}
 
开发者ID:rafjordao,项目名称:Nird2,代码行数:9,代码来源:MessageEncrypter.java


示例5: init

import org.spongycastle.crypto.generators.EphemeralKeyPairGenerator; //导入依赖的package包/类
/**
 * Initialise the encryptor.
 *
 * @param publicKey      the recipient's/sender's public key parameters
 * @param params         encoding and derivation parameters, may be wrapped to include an iv for an underlying block cipher.
 * @param ephemeralKeyPairGenerator             the ephemeral key pair generator to use.
 */
public void init(AsymmetricKeyParameter publicKey, CipherParameters params, EphemeralKeyPairGenerator ephemeralKeyPairGenerator)
{
    this.forEncryption = true;
    this.pubParam = publicKey;
    this.keyPairGenerator = ephemeralKeyPairGenerator;

    extractParams(params);
}
 
开发者ID:rsksmart,项目名称:rskj,代码行数:16,代码来源:EthereumIESEngine.java


示例6: init

import org.spongycastle.crypto.generators.EphemeralKeyPairGenerator; //导入依赖的package包/类
/**
 * Initialise the encryptor.
 *
 * @param publicKey                 the recipient's/sender's public key parameters
 * @param params                    encoding and derivation parameters, may be wrapped to include an IV for an
 *                                  underlying block cipher.
 * @param ephemeralKeyPairGenerator the ephemeral key pair generator to use.
 */
public void init(AsymmetricKeyParameter publicKey, CipherParameters params,
                 EphemeralKeyPairGenerator ephemeralKeyPairGenerator) {
    this.forEncryption = true;
    this.pubParam = publicKey;
    this.keyPairGenerator = ephemeralKeyPairGenerator;

    extractParams(params);
}
 
开发者ID:cegeka,项目名称:tether,代码行数:17,代码来源:EthereumIESEngine.java


示例7: init

import org.spongycastle.crypto.generators.EphemeralKeyPairGenerator; //导入依赖的package包/类
/**
 * Initialise the encryptor.
 *
 * @param publicKey
 *            the recipient's/sender's public key parameters
 * @param params
 *            encoding and derivation parameters, may be wrapped to include an IV for an
 *            underlying block cipher.
 * @param ephemeralKeyPairGenerator
 *            the ephemeral key pair generator to use.
 */
public void init(AsymmetricKeyParameter publicKey, CipherParameters params,
        EphemeralKeyPairGenerator ephemeralKeyPairGenerator) {
    this.forEncryption = true;
    this.pubParam = publicKey;
    this.keyPairGenerator = ephemeralKeyPairGenerator;

    extractParams(params);
}
 
开发者ID:mudpedal,项目名称:cgk-tetherj,代码行数:20,代码来源:EthereumIESEngine.java


示例8: IV

import org.spongycastle.crypto.generators.EphemeralKeyPairGenerator; //导入依赖的package包/类
@Test  // ECIES_AES128_SHA256 + Ephemeral Key + IV(all zeroes)
public void test15() throws Throwable{


    byte[] privKey = Hex.decode("a4627abc2a3c25315bff732cb22bc128f203912dd2a840f31e66efb27a47d2b1");

    ECKey ecKey = ECKey.fromPrivate(privKey);

    ECPrivateKeyParameters ecPrivKey = new ECPrivateKeyParameters(ecKey.getPrivKey(), ECKey.CURVE);
    ECPublicKeyParameters  ecPubKey  = new ECPublicKeyParameters(ecKey.getPubKeyPoint(), ECKey.CURVE);

    AsymmetricCipherKeyPair myKey = new AsymmetricCipherKeyPair(ecPubKey, ecPrivKey);


    AESFastEngine aesFastEngine = new AESFastEngine();

    IESEngine iesEngine = new IESEngine(
            new ECDHBasicAgreement(),
            new KDF2BytesGenerator(new SHA256Digest()),
            new HMac(new SHA256Digest()),
            new BufferedBlockCipher(new SICBlockCipher(aesFastEngine)));


    byte[]         d = new byte[] { 1, 2, 3, 4, 5, 6, 7, 8 };
    byte[]         e = new byte[] { 8, 7, 6, 5, 4, 3, 2, 1 };

    IESParameters p = new IESWithCipherParameters(d, e, 64, 128);
    ParametersWithIV parametersWithIV = new ParametersWithIV(p, new byte[16]);

    ECKeyPairGenerator eGen = new ECKeyPairGenerator();
    KeyGenerationParameters gParam = new ECKeyGenerationParameters(ECKey.CURVE, new SecureRandom());

    eGen.init(gParam);

    ECKeyGenerationParameters keygenParams = new ECKeyGenerationParameters(ECKey.CURVE, new SecureRandom());
    ECKeyPairGenerator generator = new ECKeyPairGenerator();
    generator.init(keygenParams);

    EphemeralKeyPairGenerator kGen = new EphemeralKeyPairGenerator(generator, new KeyEncoder()
    {
        public byte[] getEncoded(AsymmetricKeyParameter keyParameter)
        {
            return ((ECPublicKeyParameters)keyParameter).getQ().getEncoded();
        }
    });


    ECKeyPairGenerator gen = new ECKeyPairGenerator();
    gen.init(new ECKeyGenerationParameters(ECKey.CURVE, new SecureRandom()));

    iesEngine.init(myKey.getPublic(), parametersWithIV, kGen);

    byte[] message = Hex.decode("010101");
    log.info("payload: {}", Hex.toHexString(message));


    byte[] cipher = iesEngine.processBlock(message, 0, message.length);
    log.info("cipher: {}", Hex.toHexString(cipher));


    IESEngine decryptorIES_Engine = new IESEngine(
            new ECDHBasicAgreement(),
            new KDF2BytesGenerator (new SHA256Digest()),
            new HMac(new SHA256Digest()),
            new BufferedBlockCipher(new SICBlockCipher(aesFastEngine)));

    decryptorIES_Engine.init(myKey.getPrivate(), parametersWithIV, new ECIESPublicKeyParser(ECKey.CURVE));

    byte[] orig = decryptorIES_Engine.processBlock(cipher, 0, cipher.length);

    log.info("orig: " + Hex.toHexString(orig));
}
 
开发者ID:talentchain,项目名称:talchain,代码行数:73,代码来源:CryptoTest.java



注:本文中的org.spongycastle.crypto.generators.EphemeralKeyPairGenerator类示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
Java WsWebSocketContainer类代码示例发布时间:2022-05-23
下一篇:
Java FunctionMapper类代码示例发布时间:2022-05-23
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap