RSAPrivateKeyStructure.java
资源名称:security.rar [点击查看]
上传用户:lior1029
上传日期:2013-05-07
资源大小:209k
文件大小:4k
源码类别:
CA认证
开发平台:
Java
- package org.bouncycastle.asn1.pkcs;
- import java.io.*;
- import java.util.Enumeration;
- import java.math.BigInteger;
- import org.bouncycastle.asn1.*;
- public class RSAPrivateKeyStructure
- implements DEREncodable
- {
- private BigInteger modulus;
- private BigInteger publicExponent;
- private BigInteger privateExponent;
- private BigInteger prime1;
- private BigInteger prime2;
- private BigInteger exponent1;
- private BigInteger exponent2;
- private BigInteger coefficient;
- public RSAPrivateKeyStructure(
- BigInteger modulus,
- BigInteger publicExponent,
- BigInteger privateExponent,
- BigInteger prime1,
- BigInteger prime2,
- BigInteger exponent1,
- BigInteger exponent2,
- BigInteger coefficient)
- {
- this.modulus = modulus;
- this.publicExponent = publicExponent;
- this.privateExponent = privateExponent;
- this.prime1 = prime1;
- this.prime2 = prime2;
- this.exponent1 = exponent1;
- this.exponent2 = exponent2;
- this.coefficient = coefficient;
- }
- public RSAPrivateKeyStructure(
- ASN1Sequence seq)
- {
- Enumeration e = seq.getObjects();
- BigInteger version = ((DERInteger)e.nextElement()).getValue();
- if (version.intValue() != 0)
- {
- throw new IllegalArgumentException("wrong version for RSA private key");
- }
- modulus = ((DERInteger)e.nextElement()).getValue();
- publicExponent = ((DERInteger)e.nextElement()).getValue();
- privateExponent = ((DERInteger)e.nextElement()).getValue();
- prime1 = ((DERInteger)e.nextElement()).getValue();
- prime2 = ((DERInteger)e.nextElement()).getValue();
- exponent1 = ((DERInteger)e.nextElement()).getValue();
- exponent2 = ((DERInteger)e.nextElement()).getValue();
- coefficient = ((DERInteger)e.nextElement()).getValue();
- }
- public BigInteger getModulus()
- {
- return modulus;
- }
- public BigInteger getPublicExponent()
- {
- return publicExponent;
- }
- public BigInteger getPrivateExponent()
- {
- return privateExponent;
- }
- public BigInteger getPrime1()
- {
- return prime1;
- }
- public BigInteger getPrime2()
- {
- return prime2;
- }
- public BigInteger getExponent1()
- {
- return exponent1;
- }
- public BigInteger getExponent2()
- {
- return exponent2;
- }
- public BigInteger getCoefficient()
- {
- return coefficient;
- }
- /**
- * This outputs the key in PKCS1v2 format.
- * <pre>
- * RSAPrivateKey ::= SEQUENCE {
- * version Version,
- * modulus INTEGER, -- n
- * publicExponent INTEGER, -- e
- * privateExponent INTEGER, -- d
- * prime1 INTEGER, -- p
- * prime2 INTEGER, -- q
- * exponent1 INTEGER, -- d mod (p-1)
- * exponent2 INTEGER, -- d mod (q-1)
- * coefficient INTEGER -- (inverse of q) mod p
- * }
- *
- * Version ::= INTEGER
- * </pre>
- * <p>
- * This routine is written to output PKCS1 version 0, private keys.
- */
- public DERObject getDERObject()
- {
- ASN1EncodableVector v = new ASN1EncodableVector();
- v.add(new DERInteger(0)); // version
- v.add(new DERInteger(getModulus()));
- v.add(new DERInteger(getPublicExponent()));
- v.add(new DERInteger(getPrivateExponent()));
- v.add(new DERInteger(getPrime1()));
- v.add(new DERInteger(getPrime2()));
- v.add(new DERInteger(getExponent1()));
- v.add(new DERInteger(getExponent2()));
- v.add(new DERInteger(getCoefficient()));
- return new DERSequence(v);
- }
- }