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

📄 jcersapublickey.java

📁 kmlnjlkj nlkjlkjkljl okopokipoipo oipipipo i
💻 JAVA
字号:
package org.bouncycastle.jce.provider;import org.bouncycastle.asn1.ASN1Sequence;import org.bouncycastle.asn1.DERNull;import org.bouncycastle.asn1.pkcs.PKCSObjectIdentifiers;import org.bouncycastle.asn1.x509.AlgorithmIdentifier;import org.bouncycastle.asn1.x509.RSAPublicKeyStructure;import org.bouncycastle.asn1.x509.SubjectPublicKeyInfo;import org.bouncycastle.crypto.params.RSAKeyParameters;import java.io.IOException;import java.math.BigInteger;import java.security.interfaces.RSAPublicKey;import java.security.spec.RSAPublicKeySpec;public class JCERSAPublicKey    implements RSAPublicKey{    static final long serialVersionUID = 2675817738516720772L;        private BigInteger modulus;    private BigInteger publicExponent;    JCERSAPublicKey(        RSAKeyParameters key)    {        this.modulus = key.getModulus();        this.publicExponent = key.getExponent();    }    JCERSAPublicKey(        RSAPublicKeySpec spec)    {        this.modulus = spec.getModulus();        this.publicExponent = spec.getPublicExponent();    }    JCERSAPublicKey(        RSAPublicKey key)    {        this.modulus = key.getModulus();        this.publicExponent = key.getPublicExponent();    }    JCERSAPublicKey(        SubjectPublicKeyInfo    info)    {        try        {            RSAPublicKeyStructure   pubKey = new RSAPublicKeyStructure((ASN1Sequence)info.getPublicKey());            this.modulus = pubKey.getModulus();            this.publicExponent = pubKey.getPublicExponent();        }        catch (IOException e)        {            throw new IllegalArgumentException("invalid info structure in RSA public key");        }    }    /**     * return the modulus.     *     * @return the modulus.     */    public BigInteger getModulus()    {        return modulus;    }    /**     * return the public exponent.     *     * @return the public exponent.     */    public BigInteger getPublicExponent()    {        return publicExponent;    }    public String getAlgorithm()    {        return "RSA";    }    public String getFormat()    {        return "X.509";    }    public byte[] getEncoded()    {        SubjectPublicKeyInfo    info = new SubjectPublicKeyInfo(new AlgorithmIdentifier(PKCSObjectIdentifiers.rsaEncryption, new DERNull()), new RSAPublicKeyStructure(getModulus(), getPublicExponent()).getDERObject());        return info.getDEREncoded();    }    public int hashCode()    {        return this.getModulus().hashCode() ^ this.getPublicExponent().hashCode();    }    public boolean equals(Object o)    {        if (o == this)        {            return true;        }        if (!(o instanceof RSAPublicKey))        {            return false;        }        RSAPublicKey key = (RSAPublicKey)o;        return getModulus().equals(key.getModulus())            && getPublicExponent().equals(key.getPublicExponent());    }    public String toString()    {        StringBuffer    buf = new StringBuffer();        String          nl = System.getProperty("line.separator");        buf.append("RSA Public Key").append(nl);        buf.append("            modulus: ").append(this.getModulus().toString(16)).append(nl);        buf.append("    public exponent: ").append(this.getPublicExponent().toString(16)).append(nl);        return buf.toString();    }}

⌨️ 快捷键说明

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