org.bouncycastle.jce
Class PKCS10CertificationRequest

java.lang.Object
  extended by org.bouncycastle.asn1.ASN1Encodable
      extended by org.bouncycastle.asn1.pkcs.CertificationRequest
          extended by org.bouncycastle.jce.PKCS10CertificationRequest
All Implemented Interfaces:
DEREncodable

public class PKCS10CertificationRequest
extends CertificationRequest

A class for verifying and creating PKCS10 Certification requests.

 CertificationRequest ::= SEQUENCE {
   certificationRequestInfo  CertificationRequestInfo,
   signatureAlgorithm        AlgorithmIdentifier{{ SignatureAlgorithms }},
   signature                 BIT STRING
 }

 CertificationRequestInfo ::= SEQUENCE {
   version             INTEGER { v1(0) } (v1,...),
   subject             Name,
   subjectPKInfo   SubjectPublicKeyInfo{{ PKInfoAlgorithms }},
   attributes          [0] Attributes{{ CRIAttributes }}
  }

  Attributes { ATTRIBUTE:IOSet } ::= SET OF Attribute{{ IOSet }}

  Attribute { ATTRIBUTE:IOSet } ::= SEQUENCE {
    type    ATTRIBUTE.&id({IOSet}),
    values  SET SIZE(1..MAX) OF ATTRIBUTE.&Type({IOSet}{\@type})
  }
 


Field Summary
private static java.util.Hashtable algorithms
           
private static java.util.Hashtable keyAlgorithms
           
private static java.util.Set noParams
           
private static java.util.Hashtable oids
           
private static java.util.Hashtable params
           
 
Fields inherited from class org.bouncycastle.asn1.pkcs.CertificationRequest
reqInfo, sigAlgId, sigBits
 
Fields inherited from class org.bouncycastle.asn1.ASN1Encodable
BER, DER
 
Constructor Summary
PKCS10CertificationRequest(ASN1Sequence sequence)
           
PKCS10CertificationRequest(byte[] bytes)
          construct a PKCS10 certification request from a DER encoded byte stream.
PKCS10CertificationRequest(java.lang.String signatureAlgorithm, javax.security.auth.x500.X500Principal subject, java.security.PublicKey key, ASN1Set attributes, java.security.PrivateKey signingKey)
          create a PKCS10 certfication request using the BC provider.
PKCS10CertificationRequest(java.lang.String signatureAlgorithm, javax.security.auth.x500.X500Principal subject, java.security.PublicKey key, ASN1Set attributes, java.security.PrivateKey signingKey, java.lang.String provider)
          create a PKCS10 certfication request using the named provider.
PKCS10CertificationRequest(java.lang.String signatureAlgorithm, X509Name subject, java.security.PublicKey key, ASN1Set attributes, java.security.PrivateKey signingKey)
          create a PKCS10 certfication request using the BC provider.
PKCS10CertificationRequest(java.lang.String signatureAlgorithm, X509Name subject, java.security.PublicKey key, ASN1Set attributes, java.security.PrivateKey signingKey, java.lang.String provider)
          create a PKCS10 certfication request using the named provider.
 
Method Summary
private static X509Name convertName(javax.security.auth.x500.X500Principal name)
           
private static RSASSAPSSparams creatPSSParams(AlgorithmIdentifier hashAlgId, int saltSize)
           
private static java.lang.String getDigestAlgName(DERObjectIdentifier digestAlgOID)
           
 byte[] getEncoded()
          return a DER encoded byte array representing this object
 java.security.PublicKey getPublicKey()
          return the public key associated with the certification request - the public key is created using the BC provider.
 java.security.PublicKey getPublicKey(java.lang.String provider)
           
(package private) static java.lang.String getSignatureName(AlgorithmIdentifier sigAlgId)
           
private  void setSignatureParameters(java.security.Signature signature, DEREncodable params)
           
private static ASN1Sequence toDERSequence(byte[] bytes)
           
 boolean verify()
          verify the request using the BC provider.
 boolean verify(java.security.PublicKey pubKey, java.lang.String provider)
          verify the request using the passed in public key and the provider..
 boolean verify(java.lang.String provider)
          verify the request using the passed in provider.
 
Methods inherited from class org.bouncycastle.asn1.pkcs.CertificationRequest
getCertificationRequestInfo, getSignature, getSignatureAlgorithm, toASN1Object
 
Methods inherited from class org.bouncycastle.asn1.ASN1Encodable
equals, getDEREncoded, getDERObject, getEncoded, hashCode
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

algorithms

private static java.util.Hashtable algorithms

params

private static java.util.Hashtable params

keyAlgorithms

private static java.util.Hashtable keyAlgorithms

oids

private static java.util.Hashtable oids

noParams

private static java.util.Set noParams
Constructor Detail

PKCS10CertificationRequest

public PKCS10CertificationRequest(byte[] bytes)
construct a PKCS10 certification request from a DER encoded byte stream.


PKCS10CertificationRequest

public PKCS10CertificationRequest(ASN1Sequence sequence)

PKCS10CertificationRequest

public PKCS10CertificationRequest(java.lang.String signatureAlgorithm,
                                  X509Name subject,
                                  java.security.PublicKey key,
                                  ASN1Set attributes,
                                  java.security.PrivateKey signingKey)
                           throws java.security.NoSuchAlgorithmException,
                                  java.security.NoSuchProviderException,
                                  java.security.InvalidKeyException,
                                  java.security.SignatureException
create a PKCS10 certfication request using the BC provider.

Throws:
java.security.NoSuchAlgorithmException
java.security.NoSuchProviderException
java.security.InvalidKeyException
java.security.SignatureException

PKCS10CertificationRequest

public PKCS10CertificationRequest(java.lang.String signatureAlgorithm,
                                  javax.security.auth.x500.X500Principal subject,
                                  java.security.PublicKey key,
                                  ASN1Set attributes,
                                  java.security.PrivateKey signingKey)
                           throws java.security.NoSuchAlgorithmException,
                                  java.security.NoSuchProviderException,
                                  java.security.InvalidKeyException,
                                  java.security.SignatureException
create a PKCS10 certfication request using the BC provider.

Throws:
java.security.NoSuchAlgorithmException
java.security.NoSuchProviderException
java.security.InvalidKeyException
java.security.SignatureException

PKCS10CertificationRequest

public PKCS10CertificationRequest(java.lang.String signatureAlgorithm,
                                  javax.security.auth.x500.X500Principal subject,
                                  java.security.PublicKey key,
                                  ASN1Set attributes,
                                  java.security.PrivateKey signingKey,
                                  java.lang.String provider)
                           throws java.security.NoSuchAlgorithmException,
                                  java.security.NoSuchProviderException,
                                  java.security.InvalidKeyException,
                                  java.security.SignatureException
create a PKCS10 certfication request using the named provider.

Throws:
java.security.NoSuchAlgorithmException
java.security.NoSuchProviderException
java.security.InvalidKeyException
java.security.SignatureException

PKCS10CertificationRequest

public PKCS10CertificationRequest(java.lang.String signatureAlgorithm,
                                  X509Name subject,
                                  java.security.PublicKey key,
                                  ASN1Set attributes,
                                  java.security.PrivateKey signingKey,
                                  java.lang.String provider)
                           throws java.security.NoSuchAlgorithmException,
                                  java.security.NoSuchProviderException,
                                  java.security.InvalidKeyException,
                                  java.security.SignatureException
create a PKCS10 certfication request using the named provider.

Throws:
java.security.NoSuchAlgorithmException
java.security.NoSuchProviderException
java.security.InvalidKeyException
java.security.SignatureException
Method Detail

creatPSSParams

private static RSASSAPSSparams creatPSSParams(AlgorithmIdentifier hashAlgId,
                                              int saltSize)

toDERSequence

private static ASN1Sequence toDERSequence(byte[] bytes)

convertName

private static X509Name convertName(javax.security.auth.x500.X500Principal name)

getPublicKey

public java.security.PublicKey getPublicKey()
                                     throws java.security.NoSuchAlgorithmException,
                                            java.security.NoSuchProviderException,
                                            java.security.InvalidKeyException
return the public key associated with the certification request - the public key is created using the BC provider.

Throws:
java.security.NoSuchAlgorithmException
java.security.NoSuchProviderException
java.security.InvalidKeyException

getPublicKey

public java.security.PublicKey getPublicKey(java.lang.String provider)
                                     throws java.security.NoSuchAlgorithmException,
                                            java.security.NoSuchProviderException,
                                            java.security.InvalidKeyException
Throws:
java.security.NoSuchAlgorithmException
java.security.NoSuchProviderException
java.security.InvalidKeyException

verify

public boolean verify()
               throws java.security.NoSuchAlgorithmException,
                      java.security.NoSuchProviderException,
                      java.security.InvalidKeyException,
                      java.security.SignatureException
verify the request using the BC provider.

Throws:
java.security.NoSuchAlgorithmException
java.security.NoSuchProviderException
java.security.InvalidKeyException
java.security.SignatureException

verify

public boolean verify(java.lang.String provider)
               throws java.security.NoSuchAlgorithmException,
                      java.security.NoSuchProviderException,
                      java.security.InvalidKeyException,
                      java.security.SignatureException
verify the request using the passed in provider.

Throws:
java.security.NoSuchAlgorithmException
java.security.NoSuchProviderException
java.security.InvalidKeyException
java.security.SignatureException

verify

public boolean verify(java.security.PublicKey pubKey,
                      java.lang.String provider)
               throws java.security.NoSuchAlgorithmException,
                      java.security.NoSuchProviderException,
                      java.security.InvalidKeyException,
                      java.security.SignatureException
verify the request using the passed in public key and the provider..

Throws:
java.security.NoSuchAlgorithmException
java.security.NoSuchProviderException
java.security.InvalidKeyException
java.security.SignatureException

getEncoded

public byte[] getEncoded()
return a DER encoded byte array representing this object

Overrides:
getEncoded in class ASN1Encodable

setSignatureParameters

private void setSignatureParameters(java.security.Signature signature,
                                    DEREncodable params)
                             throws java.security.NoSuchAlgorithmException,
                                    java.security.SignatureException,
                                    java.security.InvalidKeyException
Throws:
java.security.NoSuchAlgorithmException
java.security.SignatureException
java.security.InvalidKeyException

getSignatureName

static java.lang.String getSignatureName(AlgorithmIdentifier sigAlgId)

getDigestAlgName

private static java.lang.String getDigestAlgName(DERObjectIdentifier digestAlgOID)