| OLD | NEW |
| (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 | |
| 5 #ifndef _LOWKEYI_H_ | |
| 6 #define _LOWKEYI_H_ | |
| 7 | |
| 8 #include "prtypes.h" | |
| 9 #include "seccomon.h" | |
| 10 #include "secoidt.h" | |
| 11 #include "lowkeyti.h" | |
| 12 | |
| 13 SEC_BEGIN_PROTOS | |
| 14 | |
| 15 /* | |
| 16 * See bugzilla bug 125359 | |
| 17 * Since NSS (via PKCS#11) wants to handle big integers as unsigned ints, | |
| 18 * all of the templates above that en/decode into integers must be converted | |
| 19 * from ASN.1's signed integer type. This is done by marking either the | |
| 20 * source or destination (encoding or decoding, respectively) type as | |
| 21 * siUnsignedInteger. | |
| 22 */ | |
| 23 extern void prepare_low_rsa_priv_key_for_asn1(NSSLOWKEYPrivateKey *key); | |
| 24 extern void prepare_low_pqg_params_for_asn1(PQGParams *params); | |
| 25 extern void prepare_low_dsa_priv_key_for_asn1(NSSLOWKEYPrivateKey *key); | |
| 26 extern void prepare_low_dsa_priv_key_export_for_asn1(NSSLOWKEYPrivateKey *key); | |
| 27 extern void prepare_low_dh_priv_key_for_asn1(NSSLOWKEYPrivateKey *key); | |
| 28 #ifndef NSS_DISABLE_ECC | |
| 29 extern void prepare_low_ec_priv_key_for_asn1(NSSLOWKEYPrivateKey *key); | |
| 30 extern void prepare_low_ecparams_for_asn1(ECParams *params); | |
| 31 #endif /* NSS_DISABLE_ECC */ | |
| 32 | |
| 33 /* | |
| 34 ** Destroy a private key object. | |
| 35 ** "key" the object | |
| 36 ** "freeit" if PR_TRUE then free the object as well as its sub-objects | |
| 37 */ | |
| 38 extern void nsslowkey_DestroyPrivateKey(NSSLOWKEYPrivateKey *key); | |
| 39 | |
| 40 /* | |
| 41 ** Destroy a public key object. | |
| 42 ** "key" the object | |
| 43 ** "freeit" if PR_TRUE then free the object as well as its sub-objects | |
| 44 */ | |
| 45 extern void nsslowkey_DestroyPublicKey(NSSLOWKEYPublicKey *key); | |
| 46 | |
| 47 /* | |
| 48 ** Return the modulus length of "pubKey". | |
| 49 */ | |
| 50 extern unsigned int nsslowkey_PublicModulusLen(NSSLOWKEYPublicKey *pubKey); | |
| 51 | |
| 52 | |
| 53 /* | |
| 54 ** Return the modulus length of "privKey". | |
| 55 */ | |
| 56 extern unsigned int nsslowkey_PrivateModulusLen(NSSLOWKEYPrivateKey *privKey); | |
| 57 | |
| 58 | |
| 59 /* | |
| 60 ** Convert a low private key "privateKey" into a public low key | |
| 61 */ | |
| 62 extern NSSLOWKEYPublicKey | |
| 63 *nsslowkey_ConvertToPublicKey(NSSLOWKEYPrivateKey *privateKey); | |
| 64 | |
| 65 /* Make a copy of a low private key in it's own arena. | |
| 66 * a return of NULL indicates an error. | |
| 67 */ | |
| 68 extern NSSLOWKEYPrivateKey * | |
| 69 nsslowkey_CopyPrivateKey(NSSLOWKEYPrivateKey *privKey); | |
| 70 | |
| 71 | |
| 72 SEC_END_PROTOS | |
| 73 | |
| 74 #endif /* _LOWKEYI_H_ */ | |
| OLD | NEW |