~ubuntu-branches/ubuntu/lucid/nss/lucid-security

« back to all changes in this revision

Viewing changes to mozilla/security/nss/lib/softoken/lowkeyti.h

  • Committer: Package Import Robot
  • Author(s): Marc Deslauriers
  • Date: 2013-11-15 08:08:08 UTC
  • mfrom: (1.2.7)
  • Revision ID: package-import@ubuntu.com-20131115080808-dba1asgnjl9tc66s
Tags: 3.15.3-0ubuntu0.10.04.1
* SECURITY UPDATE: New upstream release to fix multiple security issues
  and add TLSv1.2 support.
  - CVE-2013-1739
  - CVE-2013-1741
  - CVE-2013-5605
  - CVE-2013-5606
* Adjusted packaging for 3.15.3:
  - debian/patches/*: refreshed.
  - debian/patches/01_dont_build_nspr.patch: removed, changed build
    options in debian/rules instead.
  - debian/libnss3-1d.symbols: added new symbols.
  - debian/rules: updated for new source layout.

Show diffs side-by-side

added added

removed removed

Lines of Context:
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/. */
4
 
#ifndef _LOWKEYTI_H_
5
 
#define _LOWKEYTI_H_ 1
6
 
 
7
 
#include "blapit.h"
8
 
#include "prtypes.h"
9
 
#include "plarena.h"
10
 
#include "secitem.h"
11
 
#include "secasn1t.h"
12
 
#include "secoidt.h"
13
 
 
14
 
/*
15
 
** Typedef for callback to get a password "key".
16
 
*/
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[];
23
 
#ifdef NSS_ENABLE_ECC
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 */
28
 
 
29
 
extern const SEC_ASN1Template nsslowkey_PrivateKeyInfoTemplate[];
30
 
extern const SEC_ASN1Template nsslowkey_EncryptedPrivateKeyInfoTemplate[];
31
 
 
32
 
/*
33
 
 * PKCS #8 attributes
34
 
 */
35
 
struct NSSLOWKEYAttributeStr {
36
 
    SECItem attrType;
37
 
    SECItem *attrValue;
38
 
};
39
 
typedef struct NSSLOWKEYAttributeStr NSSLOWKEYAttribute;
40
 
 
41
 
/*
42
 
** A PKCS#8 private key info object
43
 
*/
44
 
struct NSSLOWKEYPrivateKeyInfoStr {
45
 
    PLArenaPool *arena;
46
 
    SECItem version;
47
 
    SECAlgorithmID algorithm;
48
 
    SECItem privateKey;
49
 
    NSSLOWKEYAttribute **attributes;
50
 
};
51
 
typedef struct NSSLOWKEYPrivateKeyInfoStr NSSLOWKEYPrivateKeyInfo;
52
 
#define NSSLOWKEY_PRIVATE_KEY_INFO_VERSION      0       /* what we *create* */
53
 
 
54
 
typedef enum { 
55
 
    NSSLOWKEYNullKey = 0, 
56
 
    NSSLOWKEYRSAKey = 1, 
57
 
    NSSLOWKEYDSAKey = 2, 
58
 
    NSSLOWKEYDHKey = 4,
59
 
    NSSLOWKEYECKey = 5
60
 
} NSSLOWKEYType;
61
 
 
62
 
/*
63
 
** An RSA public key object.
64
 
*/
65
 
struct NSSLOWKEYPublicKeyStr {
66
 
    PLArenaPool *arena;
67
 
    NSSLOWKEYType keyType ;
68
 
    union {
69
 
        RSAPublicKey rsa;
70
 
        DSAPublicKey dsa;
71
 
        DHPublicKey  dh;
72
 
        ECPublicKey  ec;
73
 
    } u;
74
 
};
75
 
typedef struct NSSLOWKEYPublicKeyStr NSSLOWKEYPublicKey;
76
 
 
77
 
/*
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.
81
 
*/
82
 
struct NSSLOWKEYPrivateKeyStr {
83
 
    PLArenaPool *arena;
84
 
    NSSLOWKEYType keyType;
85
 
    union {
86
 
        RSAPrivateKey rsa;
87
 
        DSAPrivateKey dsa;
88
 
        DHPrivateKey  dh;
89
 
        ECPrivateKey  ec;
90
 
    } u;
91
 
};
92
 
typedef struct NSSLOWKEYPrivateKeyStr NSSLOWKEYPrivateKey;
93
 
 
94
 
#endif  /* _LOWKEYTI_H_ */