class AkentiCertificateImpl

This abstract class is the base for all the akenti certificates implementations

Inheritance:


Public Methods

virtual ~AkentiCertificateImpl ()
Destroys this object
virtual string hashCode () const
Computes the md5 hashcode of this AkentiCertificateImpl object for searching purposes
virtual string getHashString () const
Returns the approriate hash string whose digest will be used to simplify certificate retrieval process
const string& getType () const
Returns the type of this AkentiCertificateImpl object
bool hasType (const string& type) const
Returns true if this certificate's type is equal to the argument specified by type
int getVersionNumber () const
Returns the version number of this AkentiCertificateImpl object
const string& getUniqueID () const
Returns the unique id of this AkentiCertificateImpl object
const AkentiIssuer& getIssuer () const
Returns the issuer of this AkentiCertificateImpl object
const UtcTime& getNotBefore () const
Returns the start validity date of this AkentiCertificateImpl object
const UtcTime& getNotAfter () const
Returns the end validity date of this AkentiCertificateImpl object
bool verify (const PublicKey& publicKey) const
Verifies the signature of AkentiCertificateImpl object using a PublicKey specified by publicKey
virtual string getSignable () const
Returns the signable portion of this AkentiCertificateImpl object
const string& getCanonAlg () const
Returns the name of the formatting algorithm that was used for the signature or pem encoding
const string& getSignatureAlg () const
Returns the signature algorithm that was used to sign this AkentiCertificateImpl object
const string& getSignature () const
Returns the signature that resulted from signing the signable part of this AkentiCertificateImpl object
bool checkValidity (const UtcTime& utcTime) const
Is this AkentiCertificateImpl valid at the time specified by utcTime?
bool checkValidity () const
Is this AkentiCertificateImpl valid now?
string paramString () const
Returns debugging info
string toText (int indentAmt = 0) const
Returns the Akenti Certificate in text format
string toLogString () const
Returns logging info

Protected Methods

AkentiCertificateImpl (const string& type = "NO_TYPE")
Constructs this object given a string specified by type
virtual void doWrite (AkentiOutputStream& drain) const
virtual void doRead (AkentiInputStream& source)
virtual void doToXML (DOMElement* element) const
virtual void doFromXML (const DOMElement* element)
virtual AkentiCertificateImpl* newInstance () const
Returns an instance of the concrete class
virtual void doParamString (ostream& os) const
virtual void doToText (int indentAmt, ostream& os) const

Documentation

This abstract class is the base for all the akenti certificates implementations.

We have designed all the certificates to be immutable. Subclass Implementors should adhere to this policy.
1) The set methods should be accessed by the genarators only.
2) The doReadObject should be protected.

Encoding Rules:
1) The various fields are separated by one blank space.
2) The AkentiOutputStream is configured
to write primitive types and user define types.

Note:
The encoding is straightforward with the exception of the version number which is preceded by the character 'V'.

CertificateEncoding {
type             // certificate's type 
version          // certificate's version number
id               // certificate's unique id 
issuer           // issuer and signer of certificate     
notBefore        // start validity date 
notAfter         // end validity date 
canonAlg         // name of algorithm used to format certificate
for signing or pem encoding.
signatureAlg     // name of algorithm used to sign this certificate
...              // fields contained in the concrete subclasses
signature        // digital signature of the certificate
}
virtual ~AkentiCertificateImpl()
Destroys this object

virtual string hashCode() const
Computes the md5 hashcode of this AkentiCertificateImpl object for searching purposes.
Returns:
the hashcode of this AkentiCertificateImpl
See Also:
getHashString

virtual string getHashString() const
Returns the approriate hash string whose digest will be used to simplify certificate retrieval process

const string& getType() const
Returns the type of this AkentiCertificateImpl object.
Returns:
the type of this AkentiCertificateImpl

bool hasType(const string& type) const
Returns true if this certificate's type is equal to the argument specified by type

int getVersionNumber() const
Returns the version number of this AkentiCertificateImpl object.
Returns:
the version number of this AkentiCertificateImpl

const string& getUniqueID() const
Returns the unique id of this AkentiCertificateImpl object.
Returns:
the unique id of this AkentiCertificateImpl

const AkentiIssuer& getIssuer() const
Returns the issuer of this AkentiCertificateImpl object.
Returns:
the issuer of this AkentiCertificateImpl
See Also:
AkentiPrincipal

const UtcTime& getNotBefore() const
Returns the start validity date of this AkentiCertificateImpl object.
Returns:
the start validity date of this AkentiCertificateImpl
See Also:
UtcTime

const UtcTime& getNotAfter() const
Returns the end validity date of this AkentiCertificateImpl object.
Returns:
the end validity date of this AkentiCertificateImpl
See Also:
UtcTime

bool verify(const PublicKey& publicKey) const
Verifies the signature of AkentiCertificateImpl object using a PublicKey specified by publicKey.
Returns:
true if signature verifies
Parameters:
publicKey - used to verufy signature
See Also:
PublicKey

virtual string getSignable() const
Returns the signable portion of this AkentiCertificateImpl object.
Returns:
the signable portion of this AkentiCertificateImpl
See Also:
sign(string, PrivateKey)

const string& getCanonAlg() const
Returns the name of the formatting algorithm that was used for the signature or pem encoding.
Returns:
the name of the formatting algorithm

const string& getSignatureAlg() const
Returns the signature algorithm that was used to sign this AkentiCertificateImpl object.
Returns:
the name of the signature algorithm
See Also:
sign(string, PrivateKey)

const string& getSignature() const
Returns the signature that resulted from signing the signable part of this AkentiCertificateImpl object.
Returns:
the signature of this AkentiCertificateImpl
See Also:
getSignable()
sign(string, PrivateKey)

bool checkValidity(const UtcTime& utcTime) const
Is this AkentiCertificateImpl valid at the time specified by utcTime?
Returns:
true if notBefore <= utcTime <= notAfter
See Also:
getNotBefore()
getNotAfter()
UtcTime

bool checkValidity() const
Is this AkentiCertificateImpl valid now?
Returns:
true if notBefore <= now <= notAfter
See Also:
getNotBefore()
getNotAfter()
UtcTime

string paramString() const
Returns debugging info. Subclass implementors must implement the pure virtual function doParamString(ostream&) so that the additional params are included.
Returns:
string a string representation of this object

string toText(int indentAmt = 0) const
Returns the Akenti Certificate in text format.
Parameters:
indentAmt - the number of spaces to indent the text form of the Akenti Certificate

string toLogString() const
Returns logging info

AkentiCertificateImpl(const string& type = "NO_TYPE")
Constructs this object given a string specified by type

virtual void doWrite(AkentiOutputStream& drain) const

virtual void doRead(AkentiInputStream& source)

virtual void doToXML(DOMElement* element) const

virtual void doFromXML(const DOMElement* element)

virtual AkentiCertificateImpl* newInstance() const
Returns an instance of the concrete class

virtual void doParamString(ostream& os) const

virtual void doToText(int indentAmt, ostream& os) const


Direct child classes:
DummyCertificateImpl
UseCondCertificateImpl
PolicyCertificateImpl
CapabilityCertificateImpl
CacheCertificateImpl
AttributeCertificateImpl
AkentiX509CertificateImpl
Author:
Srilekha Mudumbai Abdelilah Essiari
Version:
1.1 00/04/17
See Also:
AkentiCertGenerator
AkentiCertificate
AkentiOutputStream
AkentiInputStream
AkentiObject
AkentiIssuer
UtcTime

alphabetic index hierarchy of classes


this page has been generated automatically by doc++

(c)opyright by Malte Zöckler, Roland Wunderling
contact: doc++@zib.de