public class CardVerifiableCertificate
extends java.security.cert.Certificate
org.ejbca.cvc.CVCertificate
by Keijo Kurkinen of EJBCA.org,
so that we can subclass java.security.cert.Certificate
.
We also hide some of the internal structure (no more calls to get the "body" just to get some
attributes).Modifier | Constructor and Description |
---|---|
protected |
CardVerifiableCertificate(org.ejbca.cvc.CVCertificate cvCertificate)
Constructs a wrapper.
|
|
CardVerifiableCertificate(CVCPrincipal authorityReference,
CVCPrincipal holderReference,
java.security.PublicKey publicKey,
java.lang.String algorithm,
java.util.Date notBefore,
java.util.Date notAfter,
CVCAuthorizationTemplate.Role role,
CVCAuthorizationTemplate.Permission permission,
byte[] signatureData)
Construcst a certificate.
|
Modifier and Type | Method and Description |
---|---|
boolean |
equals(java.lang.Object otherObj) |
CVCPrincipal |
getAuthorityReference()
Gets the authority reference.
|
CVCAuthorizationTemplate |
getAuthorizationTemplate()
Gets the holder authorization template.
|
byte[] |
getCertBodyData()
The DER encoded certificate body.
|
byte[] |
getEncoded()
Returns the encoded form of this certificate.
|
CVCPrincipal |
getHolderReference()
Gets the holder reference.
|
java.util.Date |
getNotAfter()
Returns 'Expiration Date'.
|
java.util.Date |
getNotBefore()
Returns 'Effective Date'.
|
java.security.PublicKey |
getPublicKey()
Gets the public key from this certificate.
|
java.lang.String |
getSigAlgName()
Gets the signature algorithm.
|
java.lang.String |
getSigAlgOID()
Gets the signature algorithm OID
|
byte[] |
getSignature()
Returns the signature (just the value, without the
0x5F37 tag). |
int |
hashCode() |
java.lang.String |
toString()
Returns a string representation of this certificate.
|
void |
verify(java.security.PublicKey key)
Verifies that this certificate was signed using the
private key that corresponds to the specified public key.
|
void |
verify(java.security.PublicKey key,
java.lang.String provider)
Verifies that this certificate was signed using the
private key that corresponds to the specified public key.
|
protected CardVerifiableCertificate(org.ejbca.cvc.CVCertificate cvCertificate)
cvCertificate
- the EJCBA CVC to wrappublic CardVerifiableCertificate(CVCPrincipal authorityReference, CVCPrincipal holderReference, java.security.PublicKey publicKey, java.lang.String algorithm, java.util.Date notBefore, java.util.Date notAfter, CVCAuthorizationTemplate.Role role, CVCAuthorizationTemplate.Permission permission, byte[] signatureData)
authorityReference
- authority referenceholderReference
- holder referencepublicKey
- public keyalgorithm
- algorithmnotBefore
- valid from datenotAfter
- valid to daterole
- rolepermission
- permissionsignatureData
- signed datepublic java.lang.String getSigAlgName()
public java.lang.String getSigAlgOID()
public byte[] getEncoded() throws java.security.cert.CertificateEncodingException
getEncoded
in class java.security.cert.Certificate
java.security.cert.CertificateEncodingException
- if an encoding error occurs.public java.security.PublicKey getPublicKey()
getPublicKey
in class java.security.cert.Certificate
public java.lang.String toString()
toString
in class java.security.cert.Certificate
public void verify(java.security.PublicKey key) throws java.security.cert.CertificateException, java.security.NoSuchAlgorithmException, java.security.InvalidKeyException, java.security.NoSuchProviderException, java.security.SignatureException
verify
in class java.security.cert.Certificate
key
- the PublicKey used to carry out the verification.java.security.NoSuchAlgorithmException
- on unsupported signature
algorithms.java.security.InvalidKeyException
- on incorrect key.java.security.NoSuchProviderException
- if there's no default provider.java.security.SignatureException
- on signature errors.java.security.cert.CertificateException
- on encoding errors.public void verify(java.security.PublicKey key, java.lang.String provider) throws java.security.cert.CertificateException, java.security.NoSuchAlgorithmException, java.security.InvalidKeyException, java.security.NoSuchProviderException, java.security.SignatureException
verify
in class java.security.cert.Certificate
key
- the PublicKey used to carry out the verification.provider
- the name of the signature provider.java.security.NoSuchAlgorithmException
- on unsupported signature algorithms.java.security.InvalidKeyException
- on incorrect key.java.security.NoSuchProviderException
- on incorrect provider.java.security.SignatureException
- on signature errors.java.security.cert.CertificateException
- on encoding errors.public byte[] getCertBodyData() throws java.security.cert.CertificateException, java.io.IOException
java.security.cert.CertificateException
- on errorjava.io.IOException
- on errorpublic java.util.Date getNotBefore() throws java.security.cert.CertificateException
java.security.cert.CertificateException
- on errorpublic java.util.Date getNotAfter() throws java.security.cert.CertificateException
java.security.cert.CertificateException
- on errorpublic CVCPrincipal getAuthorityReference() throws java.security.cert.CertificateException
java.security.cert.CertificateException
- if the authority reference field is not presentpublic CVCPrincipal getHolderReference() throws java.security.cert.CertificateException
java.security.cert.CertificateException
- if the authority reference field is not presentpublic CVCAuthorizationTemplate getAuthorizationTemplate() throws java.security.cert.CertificateException
java.security.cert.CertificateException
- on error constructing the templatepublic byte[] getSignature() throws java.security.cert.CertificateException
0x5F37
tag).java.security.cert.CertificateException
- if certificate doesn't contain a signaturepublic boolean equals(java.lang.Object otherObj)
equals
in class java.security.cert.Certificate
public int hashCode()
hashCode
in class java.security.cert.Certificate