RSAPrivateKey.java
资源名称:security.rar [点击查看]
上传用户:lior1029
上传日期:2013-05-07
资源大小:209k
文件大小:2k
源码类别:
CA认证
开发平台:
Java
- package org.infosecurity.cryptography;
- /**
- * <p>Title: RSA的私钥类 </p>
- * <p>Description: RSA的私钥类 </p>
- * <p>Copyright: Copyright (c) 2003</p>
- * <p>Company: 中信信息安全组织(CISO)</p>
- * @author 张荣华
- * @version 1.0.2003.0704
- */
- import java.math.BigInteger;
- import java.security.SecureRandom;
- import org.bouncycastle.asn1.*;
- import org.bouncycastle.asn1.pkcs.*;
- public class RSAPrivateKey extends RSAPublicKey{
- private BigInteger d;
- private BigInteger p;
- private BigInteger q;
- private BigInteger dP;
- private BigInteger dQ;
- private BigInteger qInv;
- /**
- *
- */
- public RSAPrivateKey(
- BigInteger modulus,
- BigInteger publicExponent,
- BigInteger privateExponent,
- BigInteger p,
- BigInteger q,
- BigInteger dP,
- BigInteger dQ,
- BigInteger qInv)
- {
- super(modulus,publicExponent);
- this.d = privateExponent;
- this.p = p;
- this.q = q;
- this.dP = dP;
- this.dQ = dQ;
- this.qInv = qInv;
- }
- public BigInteger getPrivateExponent()
- {
- return d;
- }
- public BigInteger getPublicExponent()
- {
- return super.getExponent();
- }
- public BigInteger getModulus()
- {
- return super.getModulus();
- }
- public BigInteger getP()
- {
- return p;
- }
- public BigInteger getQ()
- {
- return q;
- }
- public BigInteger getDP()
- {
- return dP;
- }
- public BigInteger getDQ()
- {
- return dQ;
- }
- public BigInteger getQInv()
- {
- return qInv;
- }
- /**
- * 进行DER编码
- * @author 张荣华
- */
- public DERObject getDERObject()
- {
- ASN1EncodableVector v = new ASN1EncodableVector();
- v.add(new DERInteger(0)); /* 版本为0 */
- v.add(new DERInteger(getModulus()));
- v.add(new DERInteger(getPublicExponent()));
- v.add(new DERInteger(getPrivateExponent()));
- v.add(new DERInteger(getP()));
- v.add(new DERInteger(getQ()));
- v.add(new DERInteger(getDP()));
- v.add(new DERInteger(getQInv()));
- v.add(new DERInteger(getQInv()));
- return new DERSequence(v);
- }
- }