Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(336)

Side by Side Diff: nss/lib/pk11wrap/pk11pqg.h

Issue 2078763002: Delete bundled copy of NSS and replace with README. (Closed) Base URL: https://chromium.googlesource.com/chromium/deps/nss@master
Patch Set: Delete bundled copy of NSS and replace with README. Created 4 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « nss/lib/pk11wrap/pk11pk12.c ('k') | nss/lib/pk11wrap/pk11pqg.c » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
(Empty)
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 /* Thse functions are stub functions which will get replaced with calls through
5 * PKCS #11.
6 */
7
8 #ifndef _PK11PQG_H_
9 #define _PK11PQG_H_ 1
10
11 #include "blapit.h"
12
13 SEC_BEGIN_PROTOS
14
15 /* Generate PQGParams and PQGVerify structs.
16 * Length of seed and length of h both equal length of P.
17 * All lengths are specified by "j", according to the table above.
18 */
19 extern SECStatus PK11_PQG_ParamGen(unsigned int j, PQGParams **pParams,
20 PQGVerify **pVfy);
21
22 /* Generate PQGParams and PQGVerify structs.
23 * Length of P specified by j. Length of h will match length of P.
24 * Length of SEED in bytes specified in seedBytes.
25 * seedBbytes must be in the range [20..255] or an error will result.
26 */
27 extern SECStatus PK11_PQG_ParamGenSeedLen( unsigned int j,
28 unsigned int seedBytes, PQGParams **pParams, PQGVerify **pVfy);
29
30
31 /* Generate PQGParams and PQGVerify structs.
32 * Length of P specified by L.
33 * if L is greater than 1024 then the resulting verify parameters will be
34 * DSA2.
35 * Length of Q specified by N. If zero, The PKCS #11 module will
36 * pick an appropriately sized Q for L. If N is specified and L = 1024, then
37 * the resulting verify parameters will be DSA2, Otherwise DSA1 parameters
38 * will be returned.
39 * Length of SEED in bytes specified in seedBytes.
40 *
41 * The underlying PKCS #11 module will check the values for L, N,
42 * and seedBytes. The rules for softoken are:
43 *
44 * If L <= 1024, then L must be between 512 and 1024 in increments of 64 bits.
45 * If L <= 1024, then N must be 0 or 160.
46 * If L >= 1024, then L and N must match the following table:
47 * L=1024 N=0 or 160
48 * L=2048 N=0 or 224
49 * L=2048 N=256
50 * L=3072 N=0 or 256
51 * if L <= 1024
52 * seedBbytes must be in the range [20..256].
53 * if L >= 1024
54 * seedBbytes must be in the range [20..L/16].
55 */
56 extern SECStatus
57 PK11_PQG_ParamGenV2(unsigned int L, unsigned int N, unsigned int seedBytes,
58 PQGParams **pParams, PQGVerify **pVfy);
59
60 /* Test PQGParams for validity as DSS PQG values.
61 * If vfy is non-NULL, test PQGParams to make sure they were generated
62 * using the specified seed, counter, and h values.
63 *
64 * Return value indicates whether Verification operation ran successfully
65 * to completion, but does not indicate if PQGParams are valid or not.
66 * If return value is SECSuccess, then *pResult has these meanings:
67 * SECSuccess: PQGParams are valid.
68 * SECFailure: PQGParams are invalid.
69 *
70 * Verify the following 12 facts about PQG counter SEED g and h
71 * These tests are specified in FIPS 186-3 Appendix A.1.1.1, A.1.1.3, and A.2.2
72 * PQG_VerifyParams in softoken/freebl will automatically choose the
73 * appropriate test.
74 */
75 extern SECStatus PK11_PQG_VerifyParams(const PQGParams *params,
76 const PQGVerify *vfy, SECStatus *result);
77 extern void PK11_PQG_DestroyParams(PQGParams *params);
78 extern void PK11_PQG_DestroyVerify(PQGVerify *vfy);
79
80 /**************************************************************************
81 * Return a pointer to a new PQGParams struct that is constructed from *
82 * copies of the arguments passed in. *
83 * Return NULL on failure. *
84 **************************************************************************/
85 extern PQGParams * PK11_PQG_NewParams(const SECItem * prime, const
86 SECItem * subPrime, const SECItem * base);
87
88
89 /**************************************************************************
90 * Fills in caller's "prime" SECItem with the prime value in params.
91 * Contents can be freed by calling SECITEM_FreeItem(prime, PR_FALSE);
92 **************************************************************************/
93 extern SECStatus PK11_PQG_GetPrimeFromParams(const PQGParams *params,
94 SECItem * prime);
95
96
97 /**************************************************************************
98 * Fills in caller's "subPrime" SECItem with the prime value in params.
99 * Contents can be freed by calling SECITEM_FreeItem(subPrime, PR_FALSE);
100 **************************************************************************/
101 extern SECStatus PK11_PQG_GetSubPrimeFromParams(const PQGParams *params,
102 SECItem * subPrime);
103
104
105 /**************************************************************************
106 * Fills in caller's "base" SECItem with the base value in params.
107 * Contents can be freed by calling SECITEM_FreeItem(base, PR_FALSE);
108 **************************************************************************/
109 extern SECStatus PK11_PQG_GetBaseFromParams(const PQGParams *params,
110 SECItem *base);
111
112
113 /**************************************************************************
114 * Return a pointer to a new PQGVerify struct that is constructed from *
115 * copies of the arguments passed in. *
116 * Return NULL on failure. *
117 **************************************************************************/
118 extern PQGVerify * PK11_PQG_NewVerify(unsigned int counter,
119 const SECItem * seed, const SECItem * h);
120
121
122 /**************************************************************************
123 * Returns "counter" value from the PQGVerify.
124 **************************************************************************/
125 extern unsigned int PK11_PQG_GetCounterFromVerify(const PQGVerify *verify);
126
127 /**************************************************************************
128 * Fills in caller's "seed" SECItem with the seed value in verify.
129 * Contents can be freed by calling SECITEM_FreeItem(seed, PR_FALSE);
130 **************************************************************************/
131 extern SECStatus PK11_PQG_GetSeedFromVerify(const PQGVerify *verify,
132 SECItem *seed);
133
134 /**************************************************************************
135 * Fills in caller's "h" SECItem with the h value in verify.
136 * Contents can be freed by calling SECITEM_FreeItem(h, PR_FALSE);
137 **************************************************************************/
138 extern SECStatus PK11_PQG_GetHFromVerify(const PQGVerify *verify, SECItem * h);
139
140 SEC_END_PROTOS
141
142 #endif
OLDNEW
« no previous file with comments | « nss/lib/pk11wrap/pk11pk12.c ('k') | nss/lib/pk11wrap/pk11pqg.c » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698