mirror of
https://github.com/rn10950/RetroZilla.git
synced 2024-11-14 03:30:17 +01:00
30d33aa8e8
9934c8faef29, 3c3b381c4865, 5a67f6beee9a, 1b1eb6d77728, a8b668fd72f7, bug962760, bug743700, bug857304, bug972653, bug972450, bug971358, bug903885, bug977073, bug976111, bug949939, bug947653, bug947572, bug903885, bug979106, bug966596, bug979004, bug979752, bug980848, bug938369, bug981170, bug668130, bug974693, bug975056, bug979132, bug370717, bug979070, bug985070, bug900067, bug977673, bug519255, bug989558, bug557299, bug987263, bug369802, a751a5146718, bug992343, bug952572, bug979703, bug994883, bug994869, bug993489, bug984608, bug977869, bug667371, bug672828, bug793347, bug977869
95 lines
2.6 KiB
C
95 lines
2.6 KiB
C
/* This Source Code Form is subject to the terms of the Mozilla Public
|
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
|
#ifndef _LOWKEYTI_H_
|
|
#define _LOWKEYTI_H_ 1
|
|
|
|
#include "blapit.h"
|
|
#include "prtypes.h"
|
|
#include "plarena.h"
|
|
#include "secitem.h"
|
|
#include "secasn1t.h"
|
|
#include "secoidt.h"
|
|
|
|
/*
|
|
** Typedef for callback to get a password "key".
|
|
*/
|
|
extern const SEC_ASN1Template nsslowkey_PQGParamsTemplate[];
|
|
extern const SEC_ASN1Template nsslowkey_RSAPrivateKeyTemplate[];
|
|
extern const SEC_ASN1Template nsslowkey_DSAPrivateKeyTemplate[];
|
|
extern const SEC_ASN1Template nsslowkey_DSAPrivateKeyExportTemplate[];
|
|
extern const SEC_ASN1Template nsslowkey_DHPrivateKeyTemplate[];
|
|
extern const SEC_ASN1Template nsslowkey_DHPrivateKeyExportTemplate[];
|
|
#ifndef NSS_DISABLE_ECC
|
|
#define NSSLOWKEY_EC_PRIVATE_KEY_VERSION 1 /* as per SECG 1 C.4 */
|
|
extern const SEC_ASN1Template nsslowkey_ECParamsTemplate[];
|
|
extern const SEC_ASN1Template nsslowkey_ECPrivateKeyTemplate[];
|
|
#endif /* NSS_DISABLE_ECC */
|
|
|
|
extern const SEC_ASN1Template nsslowkey_PrivateKeyInfoTemplate[];
|
|
extern const SEC_ASN1Template nsslowkey_EncryptedPrivateKeyInfoTemplate[];
|
|
|
|
/*
|
|
* PKCS #8 attributes
|
|
*/
|
|
struct NSSLOWKEYAttributeStr {
|
|
SECItem attrType;
|
|
SECItem *attrValue;
|
|
};
|
|
typedef struct NSSLOWKEYAttributeStr NSSLOWKEYAttribute;
|
|
|
|
/*
|
|
** A PKCS#8 private key info object
|
|
*/
|
|
struct NSSLOWKEYPrivateKeyInfoStr {
|
|
PLArenaPool *arena;
|
|
SECItem version;
|
|
SECAlgorithmID algorithm;
|
|
SECItem privateKey;
|
|
NSSLOWKEYAttribute **attributes;
|
|
};
|
|
typedef struct NSSLOWKEYPrivateKeyInfoStr NSSLOWKEYPrivateKeyInfo;
|
|
#define NSSLOWKEY_PRIVATE_KEY_INFO_VERSION 0 /* what we *create* */
|
|
|
|
typedef enum {
|
|
NSSLOWKEYNullKey = 0,
|
|
NSSLOWKEYRSAKey = 1,
|
|
NSSLOWKEYDSAKey = 2,
|
|
NSSLOWKEYDHKey = 4,
|
|
NSSLOWKEYECKey = 5
|
|
} NSSLOWKEYType;
|
|
|
|
/*
|
|
** An RSA public key object.
|
|
*/
|
|
struct NSSLOWKEYPublicKeyStr {
|
|
PLArenaPool *arena;
|
|
NSSLOWKEYType keyType ;
|
|
union {
|
|
RSAPublicKey rsa;
|
|
DSAPublicKey dsa;
|
|
DHPublicKey dh;
|
|
ECPublicKey ec;
|
|
} u;
|
|
};
|
|
typedef struct NSSLOWKEYPublicKeyStr NSSLOWKEYPublicKey;
|
|
|
|
/*
|
|
** Low Level private key object
|
|
** This is only used by the raw Crypto engines (crypto), keydb (keydb),
|
|
** and PKCS #11. Everyone else uses the high level key structure.
|
|
*/
|
|
struct NSSLOWKEYPrivateKeyStr {
|
|
PLArenaPool *arena;
|
|
NSSLOWKEYType keyType;
|
|
union {
|
|
RSAPrivateKey rsa;
|
|
DSAPrivateKey dsa;
|
|
DHPrivateKey dh;
|
|
ECPrivateKey ec;
|
|
} u;
|
|
};
|
|
typedef struct NSSLOWKEYPrivateKeyStr NSSLOWKEYPrivateKey;
|
|
|
|
#endif /* _LOWKEYTI_H_ */
|