1.1 --- a/epoc32/include/x509keys.h Wed Mar 31 12:27:01 2010 +0100
1.2 +++ b/epoc32/include/x509keys.h Wed Mar 31 12:33:34 2010 +0100
1.3 @@ -17,11 +17,10 @@
1.4 */
1.5
1.6
1.7 -
1.8 -
1.9 /**
1.10 @file
1.11 - @internalTechnology
1.12 + @publishedAll
1.13 + @released
1.14 */
1.15
1.16 #if !defined (__X509KEYS_H__)
1.17 @@ -41,14 +40,17 @@
1.18 class CASN1EncSequence;
1.19 class CASN1EncBitString;
1.20
1.21 +
1.22 +#ifndef SYMBIAN_ENABLE_SPLIT_HEADERS
1.23 +#include <x509keyencoder.h>
1.24 +#endif
1.25 +
1.26 class CX509RSAPublicKey : public CRSAPublicKey
1.27 /** Adds the capability to decode DER-encoded RSA public keys.
1.28 *
1.29 * Adds a commitment to a specific encoding scheme allowing X.509 RSA public key
1.30 * superclasses to remain encoding-independent.
1.31 *
1.32 -* @publishedAll
1.33 -* @released
1.34 *
1.35 * @since v6.0
1.36 */
1.37 @@ -95,8 +97,6 @@
1.38 /**
1.39 * Class for encoding RSA public keys to ASN.1 encoding.
1.40 *
1.41 - * @publishedAll
1.42 - * @released
1.43 * @since v8.0
1.44 */
1.45 {
1.46 @@ -120,8 +120,6 @@
1.47 /**
1.48 * Class for decoding RSA public keys from ASN.1 DER encoding.
1.49 *
1.50 - * @publishedAll
1.51 - * @released
1.52 * @since v8.0
1.53 */
1.54 {
1.55 @@ -141,8 +139,6 @@
1.56 /**
1.57 * Class for decoding RSA key pairs from ASN.1 DER encoding.
1.58 *
1.59 - * @publishedAll
1.60 - * @released
1.61 * @since v8.0
1.62 */
1.63 {
1.64 @@ -171,8 +167,6 @@
1.65 * Adds a commitment to a specific encoding scheme allowing superclasses to remain
1.66 * encoding-independent.
1.67 *
1.68 -* @publishedAll
1.69 -* @released
1.70 * @since v6.0
1.71 */
1.72 // DSA public key, params, signature.
1.73 @@ -256,8 +250,6 @@
1.74 /**
1.75 * Class for decoding DSA key pairs from ASN.1 DER encoding.
1.76 *
1.77 - * @publishedAll
1.78 - * @released
1.79 * @since v8.0
1.80 */
1.81 {
1.82 @@ -292,8 +284,6 @@
1.83 /**
1.84 * Class for encoding DSA public keys to ASN.1 encoding.
1.85 *
1.86 - * @publishedAll
1.87 - * @released
1.88 * @since v8.0
1.89 */
1.90 class TASN1EncDSAPublicKey
1.91 @@ -350,8 +340,6 @@
1.92 * Adds a commitment to a specific encoding scheme allowing superclasses to remain
1.93 * encoding-independent.
1.94 *
1.95 -* @publishedAll
1.96 -* @released
1.97 * @since v6.0 */
1.98 {
1.99 public:
1.100 @@ -394,8 +382,6 @@
1.101 /** Provides clients with the information they need for Diffie-Hellman key exchange
1.102 * within a protocol.
1.103 *
1.104 -* @publishedAll
1.105 -* @released
1.106 * @since v6.0 */
1.107 {
1.108 public:
1.109 @@ -429,8 +415,6 @@
1.110 class CX509DHKeyPair : public CDHKeyPair
1.111 /** This class represents the Diffie-Hellman Key Pair.
1.112 *
1.113 -* @publishedAll
1.114 -* @released
1.115 * @since v8.0 */
1.116 {
1.117 public:
1.118 @@ -470,8 +454,6 @@
1.119 * if the DH Public Key has been generated in conformance with the algorithm
1.120 * specified in ESDH (see RFC 2631).
1.121 *
1.122 -* @publishedAll
1.123 -* @released
1.124 * @since v6.0 */
1.125 {
1.126 public:
1.127 @@ -533,8 +515,6 @@
1.128 /** Encapsulates the compulsory Diffie-Hellman domain parameter values P and G
1.129 * (See RFC 2459).
1.130 *
1.131 -* @publishedAll
1.132 -* @released
1.133 * @since v6.0 */
1.134 {
1.135 public:
1.136 @@ -618,192 +598,4 @@
1.137 CX509DHValidationParams* iValidationParams;
1.138 };
1.139
1.140 -class TX509KeyEncoder
1.141 -/**
1.142 - * Abstract class that is the base class for RSA and DSA key encoder classes.
1.143 - * These classes are used to encode the X509 ASN.1 types AlgorithmIdentifier and
1.144 - * SubjectPublicKeyInfo.
1.145 - *
1.146 - * This class is part of the pkcs10 API, and will be changed or removed in a
1.147 - * future release. You should not use it.
1.148 - *
1.149 - * @internalTechnology
1.150 - */
1.151 - {
1.152 -public:
1.153 - /**
1.154 - * Constructor that takes an algorithm identifier and saves it into the
1.155 - * corresponding member variable. It is then used in the
1.156 - * EncodeSignatureAlgorithm() function.
1.157 - *
1.158 - * @param aDigestAlg Digest algorithm to use. Currently the following
1.159 - * algorithms are supported: MD2, MD5, and SHA-1.
1.160 - */
1.161 - IMPORT_C TX509KeyEncoder(TAlgorithmId aDigestAlg);
1.162 -
1.163 - /**
1.164 - * Produces the SubjectPublicKeyInfo encoding.
1.165 - *
1.166 - * The encoding has the following ASN.1 format:
1.167 - * @code
1.168 - * SubjectPublicKeyInfo {ALGORITHM : IOSet} ::= SEQUENCE {
1.169 - * algorithm AlgorithmIdentifier {{IOSet}},
1.170 - * subjectPublicKey BIT STRING
1.171 - * }
1.172 - * @endcode
1.173 - */
1.174 - IMPORT_C virtual CASN1EncBase* EncodeKeyLC() const = 0;
1.175 -
1.176 - /**
1.177 - * Produces the AlgorithmIdentifier encoding.
1.178 - *
1.179 - * @return ASN.1 sequence containing signature algorithm
1.180 - */
1.181 - IMPORT_C virtual CASN1EncSequence* EncodeSignatureAlgorithmLC() const = 0;
1.182 -
1.183 - /**
1.184 - * Produces the DigestAlgorithmIdentifier encoder.
1.185 - *
1.186 - * The encoding has the following ASN.1 format
1.187 - * @code
1.188 - * DigestAlgorithmIdentifier ::= SEQUENCE {
1.189 - * algorithm AlgorithmIdentifier,
1.190 - * parameters ANY DEFINED BY algorithm OPTIONAL }
1.191 - *
1.192 - * AlgorithmIdentifier ::= OBJECT IDENTIFIER
1.193 - * @endcode
1.194 - *
1.195 - * @return Appropriate ASN.1 sequence of type <code>DigestAlgorithmIdentifier</code>
1.196 - */
1.197 - IMPORT_C virtual CASN1EncSequence* EncodeDigestAlgorithmLC() const;
1.198 -
1.199 -protected:
1.200 - /** Digest algorithm to use. */
1.201 - TAlgorithmId iDigestAlg;
1.202 - };
1.203 -
1.204 -class TX509RSAKeyEncoder : public TX509KeyEncoder
1.205 -/**
1.206 - * Subclasses TC509KeyEncoder to provides key encoding capability for RSA public keys.
1.207 - *
1.208 - * This class is part of the pkcs10 API, and will be changed or removed in a
1.209 - * future release. You should not use it.
1.210 - *
1.211 - * @internalTechnology
1.212 - */
1.213 - {
1.214 -public:
1.215 - /**
1.216 - * Constructs a RSA key pair encoder, saving reference to the passed
1.217 - * key pair in the member variable.
1.218 - *
1.219 - * @param aPublicKey RSA public key to use for encoding.
1.220 - * @param aDigestAlg Digest algorithm to use.
1.221 - */
1.222 - IMPORT_C TX509RSAKeyEncoder(const CRSAPublicKey& aPublicKey, TAlgorithmId aDigestAlg);
1.223 -
1.224 - /**
1.225 - * Produces the SubjectPublicKeyInfo encoding.
1.226 - *
1.227 - * The resulting encoding has the following form:
1.228 - * @code
1.229 - * SEQUENCE-OF
1.230 - * SEQUENCE-OF
1.231 - * OID of the encryption algorithm (KRSA)
1.232 - * NULL
1.233 - * BIT STRING encoded public key.
1.234 - * @endcode
1.235 - *
1.236 - * @return DER-encoded public key information, placed on the cleanup stack.
1.237 - */
1.238 - IMPORT_C virtual CASN1EncBase* EncodeKeyLC() const;
1.239 -
1.240 - /**
1.241 - * Produces the AlgorithmIdentifier encoding.
1.242 - *
1.243 - * This has the following form:
1.244 - * @code
1.245 - * SEQUENCE-OF
1.246 - * OID signature-algorithm
1.247 - * NULL
1.248 - * @endcode
1.249 - *
1.250 - * @return ASN.1 sequence containing signature algorithm encoding,
1.251 - * placed on the cleanup stack.
1.252 - */
1.253 - IMPORT_C virtual CASN1EncSequence* EncodeSignatureAlgorithmLC() const;
1.254 -
1.255 -private:
1.256 - /**
1.257 - * Saved reference to the RSA public key to be used for encoding.
1.258 - */
1.259 - const CRSAPublicKey& iPublicKey;
1.260 - };
1.261 -
1.262 -class TX509DSAKeyEncoder : public TX509KeyEncoder
1.263 -/**
1.264 - * Provides key encoding and signing capability using a DSA public key.
1.265 - *
1.266 - * This class is part of the pkcs10 API, and will be changed or removed in a
1.267 - * future release. You should not use it.
1.268 - *
1.269 - * @internalTechnology
1.270 - */
1.271 - {
1.272 -public:
1.273 - /**
1.274 - * Constructs a DSA key pair encoder, saving reference to the passed
1.275 - * public key in the member variable.
1.276 - *
1.277 - * @param aKeyPublic DSA public key to use for encoding.
1.278 - * @param aDigestAlg Digest algorithm to use.
1.279 - */
1.280 - IMPORT_C TX509DSAKeyEncoder(const CDSAPublicKey& aKeyPublic,
1.281 - TAlgorithmId aDigestAlg);
1.282 -
1.283 - /**
1.284 - * Produces the SubjectPublicKeyInfo encoding.
1.285 - *
1.286 - * The ASN.1 encoding of a DSA key has the following form:
1.287 - * @code
1.288 - * SEQUENCE-OF
1.289 - * SEQUENCE-OF
1.290 - * OID dsa (1.2.840.10040.4.1)
1.291 - * SEQUENCE-OF
1.292 - * INTEGER p
1.293 - * INTEGER q
1.294 - * INTEGER g
1.295 - * BIT STRING
1.296 - * INTEGER public value (y)
1.297 - * @endcode
1.298 - *
1.299 - * @return DER-encoded public key information, placed on the cleanup stack.
1.300 - */
1.301 - IMPORT_C virtual CASN1EncBase* EncodeKeyLC() const;
1.302 -
1.303 - /**
1.304 - * Produces the AlgorithmIdentifier encoding.
1.305 - *
1.306 - * This has the following form:
1.307 - * @code
1.308 - * SEQUENCE-OF
1.309 - * OID dsa-signature-oid
1.310 - * SEQUENCE-OF dsa-params
1.311 - * INTEGER p
1.312 - * INTEGER q
1.313 - * INTEGER g
1.314 - * @endcode
1.315 - *
1.316 - * @return ASN.1 sequence containing signature algorithm encoding,
1.317 - * placed on the cleanup stack.
1.318 - */
1.319 - IMPORT_C virtual CASN1EncSequence* EncodeSignatureAlgorithmLC() const;
1.320 -
1.321 -private:
1.322 - /**
1.323 - * Saved reference to the DSA public key to be used for encoding.
1.324 - */
1.325 - const CDSAPublicKey& iPublicKey;
1.326 - };
1.327 -
1.328 #endif