⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 dhbasicagreement.java

📁 kmlnjlkj nlkjlkjkljl okopokipoipo oipipipo i
💻 JAVA
字号:
package org.bouncycastle.crypto.agreement;import java.math.BigInteger;import org.bouncycastle.crypto.BasicAgreement;import org.bouncycastle.crypto.CipherParameters;import org.bouncycastle.crypto.params.DHParameters;import org.bouncycastle.crypto.params.DHPublicKeyParameters;import org.bouncycastle.crypto.params.DHPrivateKeyParameters;import org.bouncycastle.crypto.params.AsymmetricKeyParameter;import org.bouncycastle.crypto.params.ParametersWithRandom;/** * a Diffie-Hellman key agreement class. * <p> * note: This is only the basic algorithm, it doesn't take advantage of * long term public keys if they are available. See the DHAgreement class * for a "better" implementation. */public class DHBasicAgreement    implements BasicAgreement{    private DHPrivateKeyParameters  key;    private DHParameters            dhParams;    public void init(        CipherParameters    param)    {        AsymmetricKeyParameter  kParam;        if (param instanceof ParametersWithRandom)        {            ParametersWithRandom rParam = (ParametersWithRandom)param;            kParam = (AsymmetricKeyParameter)rParam.getParameters();        }        else        {            kParam = (AsymmetricKeyParameter)param;        }        if (!(kParam instanceof DHPrivateKeyParameters))        {            throw new IllegalArgumentException("DHEngine expects DHPrivateKeyParameters");        }        this.key = (DHPrivateKeyParameters)kParam;        this.dhParams = key.getParameters();    }    /**     * given a short term public key from a given party calculate the next     * message in the agreement sequence.      */    public BigInteger calculateAgreement(        CipherParameters   pubKey)    {        DHPublicKeyParameters   pub = (DHPublicKeyParameters)pubKey;        if (!pub.getParameters().equals(dhParams))        {            throw new IllegalArgumentException("Diffie-Hellman public key has wrong parameters.");        }        return pub.getY().modPow(key.getX(), dhParams.getP());    }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -