diff -r e1b950c65cb4 -r 837f303aceeb epoc32/include/x509keys.h --- a/epoc32/include/x509keys.h Wed Mar 31 12:27:01 2010 +0100 +++ b/epoc32/include/x509keys.h Wed Mar 31 12:33:34 2010 +0100 @@ -17,11 +17,10 @@ */ - - /** @file - @internalTechnology + @publishedAll + @released */ #if !defined (__X509KEYS_H__) @@ -41,14 +40,17 @@ class CASN1EncSequence; class CASN1EncBitString; + +#ifndef SYMBIAN_ENABLE_SPLIT_HEADERS +#include +#endif + class CX509RSAPublicKey : public CRSAPublicKey /** Adds the capability to decode DER-encoded RSA public keys. * * Adds a commitment to a specific encoding scheme allowing X.509 RSA public key * superclasses to remain encoding-independent. * -* @publishedAll -* @released * * @since v6.0 */ @@ -95,8 +97,6 @@ /** * Class for encoding RSA public keys to ASN.1 encoding. * - * @publishedAll - * @released * @since v8.0 */ { @@ -120,8 +120,6 @@ /** * Class for decoding RSA public keys from ASN.1 DER encoding. * - * @publishedAll - * @released * @since v8.0 */ { @@ -141,8 +139,6 @@ /** * Class for decoding RSA key pairs from ASN.1 DER encoding. * - * @publishedAll - * @released * @since v8.0 */ { @@ -171,8 +167,6 @@ * Adds a commitment to a specific encoding scheme allowing superclasses to remain * encoding-independent. * -* @publishedAll -* @released * @since v6.0 */ // DSA public key, params, signature. @@ -256,8 +250,6 @@ /** * Class for decoding DSA key pairs from ASN.1 DER encoding. * - * @publishedAll - * @released * @since v8.0 */ { @@ -292,8 +284,6 @@ /** * Class for encoding DSA public keys to ASN.1 encoding. * - * @publishedAll - * @released * @since v8.0 */ class TASN1EncDSAPublicKey @@ -350,8 +340,6 @@ * Adds a commitment to a specific encoding scheme allowing superclasses to remain * encoding-independent. * -* @publishedAll -* @released * @since v6.0 */ { public: @@ -394,8 +382,6 @@ /** Provides clients with the information they need for Diffie-Hellman key exchange * within a protocol. * -* @publishedAll -* @released * @since v6.0 */ { public: @@ -429,8 +415,6 @@ class CX509DHKeyPair : public CDHKeyPair /** This class represents the Diffie-Hellman Key Pair. * -* @publishedAll -* @released * @since v8.0 */ { public: @@ -470,8 +454,6 @@ * if the DH Public Key has been generated in conformance with the algorithm * specified in ESDH (see RFC 2631). * -* @publishedAll -* @released * @since v6.0 */ { public: @@ -533,8 +515,6 @@ /** Encapsulates the compulsory Diffie-Hellman domain parameter values P and G * (See RFC 2459). * -* @publishedAll -* @released * @since v6.0 */ { public: @@ -618,192 +598,4 @@ CX509DHValidationParams* iValidationParams; }; -class TX509KeyEncoder -/** - * Abstract class that is the base class for RSA and DSA key encoder classes. - * These classes are used to encode the X509 ASN.1 types AlgorithmIdentifier and - * SubjectPublicKeyInfo. - * - * This class is part of the pkcs10 API, and will be changed or removed in a - * future release. You should not use it. - * - * @internalTechnology - */ - { -public: - /** - * Constructor that takes an algorithm identifier and saves it into the - * corresponding member variable. It is then used in the - * EncodeSignatureAlgorithm() function. - * - * @param aDigestAlg Digest algorithm to use. Currently the following - * algorithms are supported: MD2, MD5, and SHA-1. - */ - IMPORT_C TX509KeyEncoder(TAlgorithmId aDigestAlg); - - /** - * Produces the SubjectPublicKeyInfo encoding. - * - * The encoding has the following ASN.1 format: - * @code - * SubjectPublicKeyInfo {ALGORITHM : IOSet} ::= SEQUENCE { - * algorithm AlgorithmIdentifier {{IOSet}}, - * subjectPublicKey BIT STRING - * } - * @endcode - */ - IMPORT_C virtual CASN1EncBase* EncodeKeyLC() const = 0; - - /** - * Produces the AlgorithmIdentifier encoding. - * - * @return ASN.1 sequence containing signature algorithm - */ - IMPORT_C virtual CASN1EncSequence* EncodeSignatureAlgorithmLC() const = 0; - - /** - * Produces the DigestAlgorithmIdentifier encoder. - * - * The encoding has the following ASN.1 format - * @code - * DigestAlgorithmIdentifier ::= SEQUENCE { - * algorithm AlgorithmIdentifier, - * parameters ANY DEFINED BY algorithm OPTIONAL } - * - * AlgorithmIdentifier ::= OBJECT IDENTIFIER - * @endcode - * - * @return Appropriate ASN.1 sequence of type DigestAlgorithmIdentifier - */ - IMPORT_C virtual CASN1EncSequence* EncodeDigestAlgorithmLC() const; - -protected: - /** Digest algorithm to use. */ - TAlgorithmId iDigestAlg; - }; - -class TX509RSAKeyEncoder : public TX509KeyEncoder -/** - * Subclasses TC509KeyEncoder to provides key encoding capability for RSA public keys. - * - * This class is part of the pkcs10 API, and will be changed or removed in a - * future release. You should not use it. - * - * @internalTechnology - */ - { -public: - /** - * Constructs a RSA key pair encoder, saving reference to the passed - * key pair in the member variable. - * - * @param aPublicKey RSA public key to use for encoding. - * @param aDigestAlg Digest algorithm to use. - */ - IMPORT_C TX509RSAKeyEncoder(const CRSAPublicKey& aPublicKey, TAlgorithmId aDigestAlg); - - /** - * Produces the SubjectPublicKeyInfo encoding. - * - * The resulting encoding has the following form: - * @code - * SEQUENCE-OF - * SEQUENCE-OF - * OID of the encryption algorithm (KRSA) - * NULL - * BIT STRING encoded public key. - * @endcode - * - * @return DER-encoded public key information, placed on the cleanup stack. - */ - IMPORT_C virtual CASN1EncBase* EncodeKeyLC() const; - - /** - * Produces the AlgorithmIdentifier encoding. - * - * This has the following form: - * @code - * SEQUENCE-OF - * OID signature-algorithm - * NULL - * @endcode - * - * @return ASN.1 sequence containing signature algorithm encoding, - * placed on the cleanup stack. - */ - IMPORT_C virtual CASN1EncSequence* EncodeSignatureAlgorithmLC() const; - -private: - /** - * Saved reference to the RSA public key to be used for encoding. - */ - const CRSAPublicKey& iPublicKey; - }; - -class TX509DSAKeyEncoder : public TX509KeyEncoder -/** - * Provides key encoding and signing capability using a DSA public key. - * - * This class is part of the pkcs10 API, and will be changed or removed in a - * future release. You should not use it. - * - * @internalTechnology - */ - { -public: - /** - * Constructs a DSA key pair encoder, saving reference to the passed - * public key in the member variable. - * - * @param aKeyPublic DSA public key to use for encoding. - * @param aDigestAlg Digest algorithm to use. - */ - IMPORT_C TX509DSAKeyEncoder(const CDSAPublicKey& aKeyPublic, - TAlgorithmId aDigestAlg); - - /** - * Produces the SubjectPublicKeyInfo encoding. - * - * The ASN.1 encoding of a DSA key has the following form: - * @code - * SEQUENCE-OF - * SEQUENCE-OF - * OID dsa (1.2.840.10040.4.1) - * SEQUENCE-OF - * INTEGER p - * INTEGER q - * INTEGER g - * BIT STRING - * INTEGER public value (y) - * @endcode - * - * @return DER-encoded public key information, placed on the cleanup stack. - */ - IMPORT_C virtual CASN1EncBase* EncodeKeyLC() const; - - /** - * Produces the AlgorithmIdentifier encoding. - * - * This has the following form: - * @code - * SEQUENCE-OF - * OID dsa-signature-oid - * SEQUENCE-OF dsa-params - * INTEGER p - * INTEGER q - * INTEGER g - * @endcode - * - * @return ASN.1 sequence containing signature algorithm encoding, - * placed on the cleanup stack. - */ - IMPORT_C virtual CASN1EncSequence* EncodeSignatureAlgorithmLC() const; - -private: - /** - * Saved reference to the DSA public key to be used for encoding. - */ - const CDSAPublicKey& iPublicKey; - }; - #endif