1
/* This Source Code Form is subject to the terms of the Mozilla Public
2
* License, v. 2.0. If a copy of the MPL was not distributed with this
3
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
15
** Typedef for callback to get a password "key".
17
extern const SEC_ASN1Template nsslowkey_PQGParamsTemplate[];
18
extern const SEC_ASN1Template nsslowkey_RSAPrivateKeyTemplate[];
19
extern const SEC_ASN1Template nsslowkey_DSAPrivateKeyTemplate[];
20
extern const SEC_ASN1Template nsslowkey_DSAPrivateKeyExportTemplate[];
21
extern const SEC_ASN1Template nsslowkey_DHPrivateKeyTemplate[];
22
extern const SEC_ASN1Template nsslowkey_DHPrivateKeyExportTemplate[];
24
#define NSSLOWKEY_EC_PRIVATE_KEY_VERSION 1 /* as per SECG 1 C.4 */
25
extern const SEC_ASN1Template nsslowkey_ECParamsTemplate[];
26
extern const SEC_ASN1Template nsslowkey_ECPrivateKeyTemplate[];
27
#endif /* NSS_ENABLE_ECC */
29
extern const SEC_ASN1Template nsslowkey_PrivateKeyInfoTemplate[];
30
extern const SEC_ASN1Template nsslowkey_EncryptedPrivateKeyInfoTemplate[];
35
struct NSSLOWKEYAttributeStr {
39
typedef struct NSSLOWKEYAttributeStr NSSLOWKEYAttribute;
42
** A PKCS#8 private key info object
44
struct NSSLOWKEYPrivateKeyInfoStr {
47
SECAlgorithmID algorithm;
49
NSSLOWKEYAttribute **attributes;
51
typedef struct NSSLOWKEYPrivateKeyInfoStr NSSLOWKEYPrivateKeyInfo;
52
#define NSSLOWKEY_PRIVATE_KEY_INFO_VERSION 0 /* what we *create* */
63
** An RSA public key object.
65
struct NSSLOWKEYPublicKeyStr {
67
NSSLOWKEYType keyType ;
75
typedef struct NSSLOWKEYPublicKeyStr NSSLOWKEYPublicKey;
78
** Low Level private key object
79
** This is only used by the raw Crypto engines (crypto), keydb (keydb),
80
** and PKCS #11. Everyone else uses the high level key structure.
82
struct NSSLOWKEYPrivateKeyStr {
84
NSSLOWKEYType keyType;
92
typedef struct NSSLOWKEYPrivateKeyStr NSSLOWKEYPrivateKey;
94
#endif /* _LOWKEYTI_H_ */