| Index: mozilla/security/nss/lib/pki/nsspki.h
|
| ===================================================================
|
| --- mozilla/security/nss/lib/pki/nsspki.h (revision 191424)
|
| +++ mozilla/security/nss/lib/pki/nsspki.h (working copy)
|
| @@ -1,3168 +0,0 @@
|
| -/* 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 NSSPKI_H
|
| -#define NSSPKI_H
|
| -
|
| -#ifdef DEBUG
|
| -static const char NSSPKI_CVS_ID[] = "@(#) $RCSfile: nsspki.h,v $ $Revision: 1.14 $ $Date: 2012/04/25 14:50:07 $";
|
| -#endif /* DEBUG */
|
| -
|
| -/*
|
| - * nsspki.h
|
| - *
|
| - * This file prototypes the methods of the top-level PKI objects.
|
| - */
|
| -
|
| -#ifndef NSSDEVT_H
|
| -#include "nssdevt.h"
|
| -#endif /* NSSDEVT_H */
|
| -
|
| -#ifndef NSSPKIT_H
|
| -#include "nsspkit.h"
|
| -#endif /* NSSPKIT_H */
|
| -
|
| -#ifndef BASE_H
|
| -#include "base.h"
|
| -#endif /* BASE_H */
|
| -
|
| -PR_BEGIN_EXTERN_C
|
| -
|
| -/*
|
| - * A note about interfaces
|
| - *
|
| - * Although these APIs are specified in C, a language which does
|
| - * not have fancy support for abstract interfaces, this library
|
| - * was designed from an object-oriented perspective. It may be
|
| - * useful to consider the standard interfaces which went into
|
| - * the writing of these APIs.
|
| - *
|
| - * Basic operations on all objects:
|
| - * Destroy -- free a pointer to an object
|
| - * DeleteStoredObject -- delete an object permanently
|
| - *
|
| - * Public Key cryptographic operations:
|
| - * Encrypt
|
| - * Verify
|
| - * VerifyRecover
|
| - * Wrap
|
| - * Derive
|
| - *
|
| - * Private Key cryptographic operations:
|
| - * IsStillPresent
|
| - * Decrypt
|
| - * Sign
|
| - * SignRecover
|
| - * Unwrap
|
| - * Derive
|
| - *
|
| - * Symmetric Key cryptographic operations:
|
| - * IsStillPresent
|
| - * Encrypt
|
| - * Decrypt
|
| - * Sign
|
| - * SignRecover
|
| - * Verify
|
| - * VerifyRecover
|
| - * Wrap
|
| - * Unwrap
|
| - * Derive
|
| - *
|
| - */
|
| -
|
| -/*
|
| - * NSSCertificate
|
| - *
|
| - * These things can do crypto ops like public keys, except that the trust,
|
| - * usage, and other constraints are checked. These objects are "high-level,"
|
| - * so trust, usages, etc. are in the form we throw around (client auth,
|
| - * email signing, etc.). Remember that theoretically another implementation
|
| - * (think PGP) could be beneath this object.
|
| - */
|
| -
|
| -/*
|
| - * NSSCertificate_Destroy
|
| - *
|
| - * Free a pointer to a certificate object.
|
| - */
|
| -
|
| -NSS_EXTERN PRStatus
|
| -NSSCertificate_Destroy
|
| -(
|
| - NSSCertificate *c
|
| -);
|
| -
|
| -/*
|
| - * NSSCertificate_DeleteStoredObject
|
| - *
|
| - * Permanently remove this certificate from storage. If this is the
|
| - * only (remaining) certificate corresponding to a private key,
|
| - * public key, and/or other object; then that object (those objects)
|
| - * are deleted too.
|
| - */
|
| -
|
| -NSS_EXTERN PRStatus
|
| -NSSCertificate_DeleteStoredObject
|
| -(
|
| - NSSCertificate *c,
|
| - NSSCallback *uhh
|
| -);
|
| -
|
| -/*
|
| - * NSSCertificate_Validate
|
| - *
|
| - * Verify that this certificate is trusted, for the specified usage(s),
|
| - * at the specified time, {word word} the specified policies.
|
| - */
|
| -
|
| -NSS_EXTERN PRStatus
|
| -NSSCertificate_Validate
|
| -(
|
| - NSSCertificate *c,
|
| - NSSTime *timeOpt, /* NULL for "now" */
|
| - NSSUsage *usage,
|
| - NSSPolicies *policiesOpt /* NULL for none */
|
| -);
|
| -
|
| -/*
|
| - * NSSCertificate_ValidateCompletely
|
| - *
|
| - * Verify that this certificate is trusted. The difference between
|
| - * this and the previous call is that NSSCertificate_Validate merely
|
| - * returns success or failure with an appropriate error stack.
|
| - * However, there may be (and often are) multiple problems with a
|
| - * certificate. This routine returns an array of errors, specifying
|
| - * every problem.
|
| - */
|
| -
|
| -/*
|
| - * Return value must be an array of objects, each of which has
|
| - * an NSSError, and any corresponding certificate (in the chain)
|
| - * and/or policy.
|
| - */
|
| -
|
| -NSS_EXTERN void ** /* void *[] */
|
| -NSSCertificate_ValidateCompletely
|
| -(
|
| - NSSCertificate *c,
|
| - NSSTime *timeOpt, /* NULL for "now" */
|
| - NSSUsage *usage,
|
| - NSSPolicies *policiesOpt, /* NULL for none */
|
| - void **rvOpt, /* NULL for allocate */
|
| - PRUint32 rvLimit, /* zero for no limit */
|
| - NSSArena *arenaOpt /* NULL for heap */
|
| -);
|
| -
|
| -/*
|
| - * NSSCertificate_ValidateAndDiscoverUsagesAndPolicies
|
| - *
|
| - * Returns PR_SUCCESS if the certificate is valid for at least something.
|
| - */
|
| -
|
| -NSS_EXTERN PRStatus
|
| -NSSCertificate_ValidateAndDiscoverUsagesAndPolicies
|
| -(
|
| - NSSCertificate *c,
|
| - NSSTime **notBeforeOutOpt,
|
| - NSSTime **notAfterOutOpt,
|
| - void *allowedUsages,
|
| - void *disallowedUsages,
|
| - void *allowedPolicies,
|
| - void *disallowedPolicies,
|
| - /* more args.. work on this fgmr */
|
| - NSSArena *arenaOpt
|
| -);
|
| -
|
| -/*
|
| - * NSSCertificate_Encode
|
| - *
|
| - */
|
| -
|
| -NSS_EXTERN NSSDER *
|
| -NSSCertificate_Encode
|
| -(
|
| - NSSCertificate *c,
|
| - NSSDER *rvOpt,
|
| - NSSArena *arenaOpt
|
| -);
|
| -
|
| -/*
|
| - * NSSCertificate_BuildChain
|
| - *
|
| - * This routine returns NSSCertificate *'s for each certificate
|
| - * in the "chain" starting from the specified one up to and
|
| - * including the root. The zeroth element in the array is the
|
| - * specified ("leaf") certificate.
|
| - *
|
| - * If statusOpt is supplied, and is returned as PR_FAILURE, possible
|
| - * error values are:
|
| - *
|
| - * NSS_ERROR_CERTIFICATE_ISSUER_NOT_FOUND - the chain is incomplete
|
| - *
|
| - */
|
| -
|
| -extern const NSSError NSS_ERROR_CERTIFICATE_ISSUER_NOT_FOUND;
|
| -
|
| -NSS_EXTERN NSSCertificate **
|
| -NSSCertificate_BuildChain
|
| -(
|
| - NSSCertificate *c,
|
| - NSSTime *timeOpt,
|
| - NSSUsage *usage,
|
| - NSSPolicies *policiesOpt,
|
| - NSSCertificate **rvOpt,
|
| - PRUint32 rvLimit, /* zero for no limit */
|
| - NSSArena *arenaOpt,
|
| - PRStatus *statusOpt,
|
| - NSSTrustDomain *td,
|
| - NSSCryptoContext *cc
|
| -);
|
| -
|
| -/*
|
| - * NSSCertificate_GetTrustDomain
|
| - *
|
| - */
|
| -
|
| -NSS_EXTERN NSSTrustDomain *
|
| -NSSCertificate_GetTrustDomain
|
| -(
|
| - NSSCertificate *c
|
| -);
|
| -
|
| -/*
|
| - * NSSCertificate_GetToken
|
| - *
|
| - * There doesn't have to be one.
|
| - */
|
| -
|
| -NSS_EXTERN NSSToken *
|
| -NSSCertificate_GetToken
|
| -(
|
| - NSSCertificate *c,
|
| - PRStatus *statusOpt
|
| -);
|
| -
|
| -/*
|
| - * NSSCertificate_GetSlot
|
| - *
|
| - * There doesn't have to be one.
|
| - */
|
| -
|
| -NSS_EXTERN NSSSlot *
|
| -NSSCertificate_GetSlot
|
| -(
|
| - NSSCertificate *c,
|
| - PRStatus *statusOpt
|
| -);
|
| -
|
| -/*
|
| - * NSSCertificate_GetModule
|
| - *
|
| - * There doesn't have to be one.
|
| - */
|
| -
|
| -NSS_EXTERN NSSModule *
|
| -NSSCertificate_GetModule
|
| -(
|
| - NSSCertificate *c,
|
| - PRStatus *statusOpt
|
| -);
|
| -
|
| -/*
|
| - * NSSCertificate_Encrypt
|
| - *
|
| - * Encrypt a single chunk of data with the public key corresponding to
|
| - * this certificate.
|
| - */
|
| -
|
| -NSS_EXTERN NSSItem *
|
| -NSSCertificate_Encrypt
|
| -(
|
| - NSSCertificate *c,
|
| - NSSAlgorithmAndParameters *apOpt,
|
| - NSSItem *data,
|
| - NSSTime *timeOpt,
|
| - NSSUsage *usage,
|
| - NSSPolicies *policiesOpt,
|
| - NSSCallback *uhh,
|
| - NSSItem *rvOpt,
|
| - NSSArena *arenaOpt
|
| -);
|
| -
|
| -/*
|
| - * NSSCertificate_Verify
|
| - *
|
| - */
|
| -
|
| -NSS_EXTERN PRStatus
|
| -NSSCertificate_Verify
|
| -(
|
| - NSSCertificate *c,
|
| - NSSAlgorithmAndParameters *apOpt,
|
| - NSSItem *data,
|
| - NSSItem *signature,
|
| - NSSTime *timeOpt,
|
| - NSSUsage *usage,
|
| - NSSPolicies *policiesOpt,
|
| - NSSCallback *uhh
|
| -);
|
| -
|
| -/*
|
| - * NSSCertificate_VerifyRecover
|
| - *
|
| - */
|
| -
|
| -NSS_EXTERN NSSItem *
|
| -NSSCertificate_VerifyRecover
|
| -(
|
| - NSSCertificate *c,
|
| - NSSAlgorithmAndParameters *apOpt,
|
| - NSSItem *signature,
|
| - NSSTime *timeOpt,
|
| - NSSUsage *usage,
|
| - NSSPolicies *policiesOpt,
|
| - NSSCallback *uhh,
|
| - NSSItem *rvOpt,
|
| - NSSArena *arenaOpt
|
| -);
|
| -
|
| -/*
|
| - * NSSCertificate_WrapSymmetricKey
|
| - *
|
| - * This method tries very hard to to succeed, even in situations
|
| - * involving sensitive keys and multiple modules.
|
| - * { relyea: want to add verbiage? }
|
| - */
|
| -
|
| -NSS_EXTERN NSSItem *
|
| -NSSCertificate_WrapSymmetricKey
|
| -(
|
| - NSSCertificate *c,
|
| - NSSAlgorithmAndParameters *apOpt,
|
| - NSSSymmetricKey *keyToWrap,
|
| - NSSTime *timeOpt,
|
| - NSSUsage *usage,
|
| - NSSPolicies *policiesOpt,
|
| - NSSCallback *uhh,
|
| - NSSItem *rvOpt,
|
| - NSSArena *arenaOpt
|
| -);
|
| -
|
| -/*
|
| - * NSSCertificate_CreateCryptoContext
|
| - *
|
| - * Create a crypto context, in this certificate's trust domain, with this
|
| - * as the distinguished certificate.
|
| - */
|
| -
|
| -NSS_EXTERN NSSCryptoContext *
|
| -NSSCertificate_CreateCryptoContext
|
| -(
|
| - NSSCertificate *c,
|
| - NSSAlgorithmAndParameters *apOpt,
|
| - NSSTime *timeOpt,
|
| - NSSUsage *usage,
|
| - NSSPolicies *policiesOpt,
|
| - NSSCallback *uhh
|
| -);
|
| -
|
| -/*
|
| - * NSSCertificate_GetPublicKey
|
| - *
|
| - * Returns the public key corresponding to this certificate.
|
| - */
|
| -
|
| -NSS_EXTERN NSSPublicKey *
|
| -NSSCertificate_GetPublicKey
|
| -(
|
| - NSSCertificate *c
|
| -);
|
| -
|
| -/*
|
| - * NSSCertificate_FindPrivateKey
|
| - *
|
| - * Finds and returns the private key corresponding to this certificate,
|
| - * if it is available.
|
| - *
|
| - * { Should this hang off of NSSUserCertificate? }
|
| - */
|
| -
|
| -NSS_EXTERN NSSPrivateKey *
|
| -NSSCertificate_FindPrivateKey
|
| -(
|
| - NSSCertificate *c,
|
| - NSSCallback *uhh
|
| -);
|
| -
|
| -/*
|
| - * NSSCertificate_IsPrivateKeyAvailable
|
| - *
|
| - * Returns success if the private key corresponding to this certificate
|
| - * is available to be used.
|
| - *
|
| - * { Should *this* hang off of NSSUserCertificate?? }
|
| - */
|
| -
|
| -NSS_EXTERN PRBool
|
| -NSSCertificate_IsPrivateKeyAvailable
|
| -(
|
| - NSSCertificate *c,
|
| - NSSCallback *uhh,
|
| - PRStatus *statusOpt
|
| -);
|
| -
|
| -/*
|
| - * If we make NSSUserCertificate not a typedef of NSSCertificate,
|
| - * then we'll need implementations of the following:
|
| - *
|
| - * NSSUserCertificate_Destroy
|
| - * NSSUserCertificate_DeleteStoredObject
|
| - * NSSUserCertificate_Validate
|
| - * NSSUserCertificate_ValidateCompletely
|
| - * NSSUserCertificate_ValidateAndDiscoverUsagesAndPolicies
|
| - * NSSUserCertificate_Encode
|
| - * NSSUserCertificate_BuildChain
|
| - * NSSUserCertificate_GetTrustDomain
|
| - * NSSUserCertificate_GetToken
|
| - * NSSUserCertificate_GetSlot
|
| - * NSSUserCertificate_GetModule
|
| - * NSSUserCertificate_GetCryptoContext
|
| - * NSSUserCertificate_GetPublicKey
|
| - */
|
| -
|
| -/*
|
| - * NSSUserCertificate_IsStillPresent
|
| - *
|
| - * Verify that if this certificate lives on a token, that the token
|
| - * is still present and the certificate still exists. This is a
|
| - * lightweight call which should be used whenever it should be
|
| - * verified that the user hasn't perhaps popped out his or her
|
| - * token and strolled away.
|
| - */
|
| -
|
| -NSS_EXTERN PRBool
|
| -NSSUserCertificate_IsStillPresent
|
| -(
|
| - NSSUserCertificate *uc,
|
| - PRStatus *statusOpt
|
| -);
|
| -
|
| -/*
|
| - * NSSUserCertificate_Decrypt
|
| - *
|
| - * Decrypt a single chunk of data with the private key corresponding
|
| - * to this certificate.
|
| - */
|
| -
|
| -NSS_EXTERN NSSItem *
|
| -NSSUserCertificate_Decrypt
|
| -(
|
| - NSSUserCertificate *uc,
|
| - NSSAlgorithmAndParameters *apOpt,
|
| - NSSItem *data,
|
| - NSSTime *timeOpt,
|
| - NSSUsage *usage,
|
| - NSSPolicies *policiesOpt,
|
| - NSSCallback *uhh,
|
| - NSSItem *rvOpt,
|
| - NSSArena *arenaOpt
|
| -);
|
| -
|
| -/*
|
| - * NSSUserCertificate_Sign
|
| - *
|
| - */
|
| -
|
| -NSS_EXTERN NSSItem *
|
| -NSSUserCertificate_Sign
|
| -(
|
| - NSSUserCertificate *uc,
|
| - NSSAlgorithmAndParameters *apOpt,
|
| - NSSItem *data,
|
| - NSSTime *timeOpt,
|
| - NSSUsage *usage,
|
| - NSSPolicies *policiesOpt,
|
| - NSSCallback *uhh,
|
| - NSSItem *rvOpt,
|
| - NSSArena *arenaOpt
|
| -);
|
| -
|
| -/*
|
| - * NSSUserCertificate_SignRecover
|
| - *
|
| - */
|
| -
|
| -NSS_EXTERN NSSItem *
|
| -NSSUserCertificate_SignRecover
|
| -(
|
| - NSSUserCertificate *uc,
|
| - NSSAlgorithmAndParameters *apOpt,
|
| - NSSItem *data,
|
| - NSSTime *timeOpt,
|
| - NSSUsage *usage,
|
| - NSSPolicies *policiesOpt,
|
| - NSSCallback *uhh,
|
| - NSSItem *rvOpt,
|
| - NSSArena *arenaOpt
|
| -);
|
| -
|
| -/*
|
| - * NSSUserCertificate_UnwrapSymmetricKey
|
| - *
|
| - */
|
| -
|
| -NSS_EXTERN NSSSymmetricKey *
|
| -NSSUserCertificate_UnwrapSymmetricKey
|
| -(
|
| - NSSUserCertificate *uc,
|
| - NSSAlgorithmAndParameters *apOpt,
|
| - NSSItem *wrappedKey,
|
| - NSSTime *timeOpt,
|
| - NSSUsage *usage,
|
| - NSSPolicies *policiesOpt,
|
| - NSSCallback *uhh,
|
| - NSSItem *rvOpt,
|
| - NSSArena *arenaOpt
|
| -);
|
| -
|
| -/*
|
| - * NSSUserCertificate_DeriveSymmetricKey
|
| - *
|
| - */
|
| -
|
| -NSS_EXTERN NSSSymmetricKey *
|
| -NSSUserCertificate_DeriveSymmetricKey
|
| -(
|
| - NSSUserCertificate *uc, /* provides private key */
|
| - NSSCertificate *c, /* provides public key */
|
| - NSSAlgorithmAndParameters *apOpt,
|
| - NSSOID *target,
|
| - PRUint32 keySizeOpt, /* zero for best allowed */
|
| - NSSOperations operations,
|
| - NSSCallback *uhh
|
| -);
|
| -
|
| -/* filter-certs function(s) */
|
| -
|
| -/**
|
| - ** fgmr -- trust objects
|
| - **/
|
| -
|
| -/*
|
| - * NSSPrivateKey
|
| - *
|
| - */
|
| -
|
| -/*
|
| - * NSSPrivateKey_Destroy
|
| - *
|
| - * Free a pointer to a private key object.
|
| - */
|
| -
|
| -NSS_EXTERN PRStatus
|
| -NSSPrivateKey_Destroy
|
| -(
|
| - NSSPrivateKey *vk
|
| -);
|
| -
|
| -/*
|
| - * NSSPrivateKey_DeleteStoredObject
|
| - *
|
| - * Permanently remove this object, and any related objects (such as the
|
| - * certificates corresponding to this key).
|
| - */
|
| -
|
| -NSS_EXTERN PRStatus
|
| -NSSPrivateKey_DeleteStoredObject
|
| -(
|
| - NSSPrivateKey *vk,
|
| - NSSCallback *uhh
|
| -);
|
| -
|
| -/*
|
| - * NSSPrivateKey_GetSignatureLength
|
| - *
|
| - */
|
| -
|
| -NSS_EXTERN PRUint32
|
| -NSSPrivateKey_GetSignatureLength
|
| -(
|
| - NSSPrivateKey *vk
|
| -);
|
| -
|
| -/*
|
| - * NSSPrivateKey_GetPrivateModulusLength
|
| - *
|
| - */
|
| -
|
| -NSS_EXTERN PRUint32
|
| -NSSPrivateKey_GetPrivateModulusLength
|
| -(
|
| - NSSPrivateKey *vk
|
| -);
|
| -
|
| -/*
|
| - * NSSPrivateKey_IsStillPresent
|
| - *
|
| - */
|
| -
|
| -NSS_EXTERN PRBool
|
| -NSSPrivateKey_IsStillPresent
|
| -(
|
| - NSSPrivateKey *vk,
|
| - PRStatus *statusOpt
|
| -);
|
| -
|
| -/*
|
| - * NSSPrivateKey_Encode
|
| - *
|
| - */
|
| -
|
| -NSS_EXTERN NSSItem *
|
| -NSSPrivateKey_Encode
|
| -(
|
| - NSSPrivateKey *vk,
|
| - NSSAlgorithmAndParameters *ap,
|
| - NSSItem *passwordOpt, /* NULL will cause a callback; "" for no password */
|
| - NSSCallback *uhhOpt,
|
| - NSSItem *rvOpt,
|
| - NSSArena *arenaOpt
|
| -);
|
| -
|
| -/*
|
| - * NSSPrivateKey_GetTrustDomain
|
| - *
|
| - * There doesn't have to be one.
|
| - */
|
| -
|
| -NSS_EXTERN NSSTrustDomain *
|
| -NSSPrivateKey_GetTrustDomain
|
| -(
|
| - NSSPrivateKey *vk,
|
| - PRStatus *statusOpt
|
| -);
|
| -
|
| -/*
|
| - * NSSPrivateKey_GetToken
|
| - *
|
| - */
|
| -
|
| -NSS_EXTERN NSSToken *
|
| -NSSPrivateKey_GetToken
|
| -(
|
| - NSSPrivateKey *vk
|
| -);
|
| -
|
| -/*
|
| - * NSSPrivateKey_GetSlot
|
| - *
|
| - */
|
| -
|
| -NSS_EXTERN NSSSlot *
|
| -NSSPrivateKey_GetSlot
|
| -(
|
| - NSSPrivateKey *vk
|
| -);
|
| -
|
| -/*
|
| - * NSSPrivateKey_GetModule
|
| - *
|
| - */
|
| -
|
| -NSS_EXTERN NSSModule *
|
| -NSSPrivateKey_GetModule
|
| -(
|
| - NSSPrivateKey *vk
|
| -);
|
| -
|
| -/*
|
| - * NSSPrivateKey_Decrypt
|
| - *
|
| - */
|
| -
|
| -NSS_EXTERN NSSItem *
|
| -NSSPrivateKey_Decrypt
|
| -(
|
| - NSSPrivateKey *vk,
|
| - NSSAlgorithmAndParameters *apOpt,
|
| - NSSItem *encryptedData,
|
| - NSSCallback *uhh,
|
| - NSSItem *rvOpt,
|
| - NSSArena *arenaOpt
|
| -);
|
| -
|
| -/*
|
| - * NSSPrivateKey_Sign
|
| - *
|
| - */
|
| -
|
| -NSS_EXTERN NSSItem *
|
| -NSSPrivateKey_Sign
|
| -(
|
| - NSSPrivateKey *vk,
|
| - NSSAlgorithmAndParameters *apOpt,
|
| - NSSItem *data,
|
| - NSSCallback *uhh,
|
| - NSSItem *rvOpt,
|
| - NSSArena *arenaOpt
|
| -);
|
| -
|
| -/*
|
| - * NSSPrivateKey_SignRecover
|
| - *
|
| - */
|
| -
|
| -NSS_EXTERN NSSItem *
|
| -NSSPrivateKey_SignRecover
|
| -(
|
| - NSSPrivateKey *vk,
|
| - NSSAlgorithmAndParameters *apOpt,
|
| - NSSItem *data,
|
| - NSSCallback *uhh,
|
| - NSSItem *rvOpt,
|
| - NSSArena *arenaOpt
|
| -);
|
| -
|
| -/*
|
| - * NSSPrivateKey_UnwrapSymmetricKey
|
| - *
|
| - */
|
| -
|
| -NSS_EXTERN NSSSymmetricKey *
|
| -NSSPrivateKey_UnwrapSymmetricKey
|
| -(
|
| - NSSPrivateKey *vk,
|
| - NSSAlgorithmAndParameters *apOpt,
|
| - NSSItem *wrappedKey,
|
| - NSSCallback *uhh
|
| -);
|
| -
|
| -/*
|
| - * NSSPrivateKey_DeriveSymmetricKey
|
| - *
|
| - */
|
| -
|
| -NSS_EXTERN NSSSymmetricKey *
|
| -NSSPrivateKey_DeriveSymmetricKey
|
| -(
|
| - NSSPrivateKey *vk,
|
| - NSSPublicKey *bk,
|
| - NSSAlgorithmAndParameters *apOpt,
|
| - NSSOID *target,
|
| - PRUint32 keySizeOpt, /* zero for best allowed */
|
| - NSSOperations operations,
|
| - NSSCallback *uhh
|
| -);
|
| -
|
| -/*
|
| - * NSSPrivateKey_FindPublicKey
|
| - *
|
| - */
|
| -
|
| -NSS_EXTERN NSSPublicKey *
|
| -NSSPrivateKey_FindPublicKey
|
| -(
|
| - NSSPrivateKey *vk
|
| - /* { don't need the callback here, right? } */
|
| -);
|
| -
|
| -/*
|
| - * NSSPrivateKey_CreateCryptoContext
|
| - *
|
| - * Create a crypto context, in this key's trust domain,
|
| - * with this as the distinguished private key.
|
| - */
|
| -
|
| -NSS_EXTERN NSSCryptoContext *
|
| -NSSPrivateKey_CreateCryptoContext
|
| -(
|
| - NSSPrivateKey *vk,
|
| - NSSAlgorithmAndParameters *apOpt,
|
| - NSSCallback *uhh
|
| -);
|
| -
|
| -/*
|
| - * NSSPrivateKey_FindCertificates
|
| - *
|
| - * Note that there may be more than one certificate for this
|
| - * private key. { FilterCertificates function to further
|
| - * reduce the list. }
|
| - */
|
| -
|
| -NSS_EXTERN NSSCertificate **
|
| -NSSPrivateKey_FindCertificates
|
| -(
|
| - NSSPrivateKey *vk,
|
| - NSSCertificate *rvOpt[],
|
| - PRUint32 maximumOpt, /* 0 for no max */
|
| - NSSArena *arenaOpt
|
| -);
|
| -
|
| -/*
|
| - * NSSPrivateKey_FindBestCertificate
|
| - *
|
| - * The parameters for this function will depend on what the users
|
| - * need. This is just a starting point.
|
| - */
|
| -
|
| -NSS_EXTERN NSSCertificate *
|
| -NSSPrivateKey_FindBestCertificate
|
| -(
|
| - NSSPrivateKey *vk,
|
| - NSSTime *timeOpt,
|
| - NSSUsage *usageOpt,
|
| - NSSPolicies *policiesOpt
|
| -);
|
| -
|
| -/*
|
| - * NSSPublicKey
|
| - *
|
| - * Once you generate, find, or derive one of these, you can use it
|
| - * to perform (simple) cryptographic operations. Though there may
|
| - * be certificates associated with these public keys, they are not
|
| - * verified.
|
| - */
|
| -
|
| -/*
|
| - * NSSPublicKey_Destroy
|
| - *
|
| - * Free a pointer to a public key object.
|
| - */
|
| -
|
| -NSS_EXTERN PRStatus
|
| -NSSPublicKey_Destroy
|
| -(
|
| - NSSPublicKey *bk
|
| -);
|
| -
|
| -/*
|
| - * NSSPublicKey_DeleteStoredObject
|
| - *
|
| - * Permanently remove this object, and any related objects (such as the
|
| - * corresponding private keys and certificates).
|
| - */
|
| -
|
| -NSS_EXTERN PRStatus
|
| -NSSPublicKey_DeleteStoredObject
|
| -(
|
| - NSSPublicKey *bk,
|
| - NSSCallback *uhh
|
| -);
|
| -
|
| -/*
|
| - * NSSPublicKey_Encode
|
| - *
|
| - */
|
| -
|
| -NSS_EXTERN NSSItem *
|
| -NSSPublicKey_Encode
|
| -(
|
| - NSSPublicKey *bk,
|
| - NSSAlgorithmAndParameters *ap,
|
| - NSSCallback *uhhOpt,
|
| - NSSItem *rvOpt,
|
| - NSSArena *arenaOpt
|
| -);
|
| -
|
| -/*
|
| - * NSSPublicKey_GetTrustDomain
|
| - *
|
| - * There doesn't have to be one.
|
| - */
|
| -
|
| -NSS_EXTERN NSSTrustDomain *
|
| -NSSPublicKey_GetTrustDomain
|
| -(
|
| - NSSPublicKey *bk,
|
| - PRStatus *statusOpt
|
| -);
|
| -
|
| -/*
|
| - * NSSPublicKey_GetToken
|
| - *
|
| - * There doesn't have to be one.
|
| - */
|
| -
|
| -NSS_EXTERN NSSToken *
|
| -NSSPublicKey_GetToken
|
| -(
|
| - NSSPublicKey *bk,
|
| - PRStatus *statusOpt
|
| -);
|
| -
|
| -/*
|
| - * NSSPublicKey_GetSlot
|
| - *
|
| - * There doesn't have to be one.
|
| - */
|
| -
|
| -NSS_EXTERN NSSSlot *
|
| -NSSPublicKey_GetSlot
|
| -(
|
| - NSSPublicKey *bk,
|
| - PRStatus *statusOpt
|
| -);
|
| -
|
| -/*
|
| - * NSSPublicKey_GetModule
|
| - *
|
| - * There doesn't have to be one.
|
| - */
|
| -
|
| -NSS_EXTERN NSSModule *
|
| -NSSPublicKey_GetModule
|
| -(
|
| - NSSPublicKey *bk,
|
| - PRStatus *statusOpt
|
| -);
|
| -
|
| -/*
|
| - * NSSPublicKey_Encrypt
|
| - *
|
| - * Encrypt a single chunk of data with the public key corresponding to
|
| - * this certificate.
|
| - */
|
| -
|
| -NSS_EXTERN NSSItem *
|
| -NSSPublicKey_Encrypt
|
| -(
|
| - NSSPublicKey *bk,
|
| - NSSAlgorithmAndParameters *apOpt,
|
| - NSSItem *data,
|
| - NSSCallback *uhh,
|
| - NSSItem *rvOpt,
|
| - NSSArena *arenaOpt
|
| -);
|
| -
|
| -/*
|
| - * NSSPublicKey_Verify
|
| - *
|
| - */
|
| -
|
| -NSS_EXTERN PRStatus
|
| -NSSPublicKey_Verify
|
| -(
|
| - NSSPublicKey *bk,
|
| - NSSAlgorithmAndParameters *apOpt,
|
| - NSSItem *data,
|
| - NSSItem *signature,
|
| - NSSCallback *uhh
|
| -);
|
| -
|
| -/*
|
| - * NSSPublicKey_VerifyRecover
|
| - *
|
| - */
|
| -
|
| -NSS_EXTERN NSSItem *
|
| -NSSPublicKey_VerifyRecover
|
| -(
|
| - NSSPublicKey *bk,
|
| - NSSAlgorithmAndParameters *apOpt,
|
| - NSSItem *signature,
|
| - NSSCallback *uhh,
|
| - NSSItem *rvOpt,
|
| - NSSArena *arenaOpt
|
| -);
|
| -
|
| -/*
|
| - * NSSPublicKey_WrapSymmetricKey
|
| - *
|
| - */
|
| -
|
| -NSS_EXTERN NSSItem *
|
| -NSSPublicKey_WrapSymmetricKey
|
| -(
|
| - NSSPublicKey *bk,
|
| - NSSAlgorithmAndParameters *apOpt,
|
| - NSSSymmetricKey *keyToWrap,
|
| - NSSCallback *uhh,
|
| - NSSItem *rvOpt,
|
| - NSSArena *arenaOpt
|
| -);
|
| -
|
| -/*
|
| - * NSSPublicKey_CreateCryptoContext
|
| - *
|
| - * Create a crypto context, in this key's trust domain, with this
|
| - * as the distinguished public key.
|
| - */
|
| -
|
| -NSS_EXTERN NSSCryptoContext *
|
| -NSSPublicKey_CreateCryptoContext
|
| -(
|
| - NSSPublicKey *bk,
|
| - NSSAlgorithmAndParameters *apOpt,
|
| - NSSCallback *uhh
|
| -);
|
| -
|
| -/*
|
| - * NSSPublicKey_FindCertificates
|
| - *
|
| - * Note that there may be more than one certificate for this
|
| - * public key. The current implementation may not find every
|
| - * last certificate available for this public key: that would
|
| - * involve trolling e.g. huge ldap databases, which will be
|
| - * grossly inefficient and not generally useful.
|
| - * { FilterCertificates function to further reduce the list }
|
| - */
|
| -
|
| -NSS_EXTERN NSSCertificate **
|
| -NSSPublicKey_FindCertificates
|
| -(
|
| - NSSPublicKey *bk,
|
| - NSSCertificate *rvOpt[],
|
| - PRUint32 maximumOpt, /* 0 for no max */
|
| - NSSArena *arenaOpt
|
| -);
|
| -
|
| -/*
|
| - * NSSPrivateKey_FindBestCertificate
|
| - *
|
| - * The parameters for this function will depend on what the users
|
| - * need. This is just a starting point.
|
| - */
|
| -
|
| -NSS_EXTERN NSSCertificate *
|
| -NSSPublicKey_FindBestCertificate
|
| -(
|
| - NSSPublicKey *bk,
|
| - NSSTime *timeOpt,
|
| - NSSUsage *usageOpt,
|
| - NSSPolicies *policiesOpt
|
| -);
|
| -
|
| -/*
|
| - * NSSPublicKey_FindPrivateKey
|
| - *
|
| - */
|
| -
|
| -NSS_EXTERN NSSPrivateKey *
|
| -NSSPublicKey_FindPrivateKey
|
| -(
|
| - NSSPublicKey *bk,
|
| - NSSCallback *uhh
|
| -);
|
| -
|
| -/*
|
| - * NSSSymmetricKey
|
| - *
|
| - */
|
| -
|
| -/*
|
| - * NSSSymmetricKey_Destroy
|
| - *
|
| - * Free a pointer to a symmetric key object.
|
| - */
|
| -
|
| -NSS_EXTERN PRStatus
|
| -NSSSymmetricKey_Destroy
|
| -(
|
| - NSSSymmetricKey *mk
|
| -);
|
| -
|
| -/*
|
| - * NSSSymmetricKey_DeleteStoredObject
|
| - *
|
| - * Permanently remove this object.
|
| - */
|
| -
|
| -NSS_EXTERN PRStatus
|
| -NSSSymmetricKey_DeleteStoredObject
|
| -(
|
| - NSSSymmetricKey *mk,
|
| - NSSCallback *uhh
|
| -);
|
| -
|
| -/*
|
| - * NSSSymmetricKey_GetKeyLength
|
| - *
|
| - */
|
| -
|
| -NSS_EXTERN PRUint32
|
| -NSSSymmetricKey_GetKeyLength
|
| -(
|
| - NSSSymmetricKey *mk
|
| -);
|
| -
|
| -/*
|
| - * NSSSymmetricKey_GetKeyStrength
|
| - *
|
| - */
|
| -
|
| -NSS_EXTERN PRUint32
|
| -NSSSymmetricKey_GetKeyStrength
|
| -(
|
| - NSSSymmetricKey *mk
|
| -);
|
| -
|
| -/*
|
| - * NSSSymmetricKey_IsStillPresent
|
| - *
|
| - */
|
| -
|
| -NSS_EXTERN PRStatus
|
| -NSSSymmetricKey_IsStillPresent
|
| -(
|
| - NSSSymmetricKey *mk
|
| -);
|
| -
|
| -/*
|
| - * NSSSymmetricKey_GetTrustDomain
|
| - *
|
| - * There doesn't have to be one.
|
| - */
|
| -
|
| -NSS_EXTERN NSSTrustDomain *
|
| -NSSSymmetricKey_GetTrustDomain
|
| -(
|
| - NSSSymmetricKey *mk,
|
| - PRStatus *statusOpt
|
| -);
|
| -
|
| -/*
|
| - * NSSSymmetricKey_GetToken
|
| - *
|
| - * There doesn't have to be one.
|
| - */
|
| -
|
| -NSS_EXTERN NSSToken *
|
| -NSSSymmetricKey_GetToken
|
| -(
|
| - NSSSymmetricKey *mk,
|
| - PRStatus *statusOpt
|
| -);
|
| -
|
| -/*
|
| - * NSSSymmetricKey_GetSlot
|
| - *
|
| - * There doesn't have to be one.
|
| - */
|
| -
|
| -NSS_EXTERN NSSSlot *
|
| -NSSSymmetricKey_GetSlot
|
| -(
|
| - NSSSymmetricKey *mk,
|
| - PRStatus *statusOpt
|
| -);
|
| -
|
| -/*
|
| - * NSSSymmetricKey_GetModule
|
| - *
|
| - * There doesn't have to be one.
|
| - */
|
| -
|
| -NSS_EXTERN NSSModule *
|
| -NSSSymmetricKey_GetModule
|
| -(
|
| - NSSSymmetricKey *mk,
|
| - PRStatus *statusOpt
|
| -);
|
| -
|
| -/*
|
| - * NSSSymmetricKey_Encrypt
|
| - *
|
| - */
|
| -
|
| -NSS_EXTERN NSSItem *
|
| -NSSSymmetricKey_Encrypt
|
| -(
|
| - NSSSymmetricKey *mk,
|
| - NSSAlgorithmAndParameters *apOpt,
|
| - NSSItem *data,
|
| - NSSCallback *uhh,
|
| - NSSItem *rvOpt,
|
| - NSSArena *arenaOpt
|
| -);
|
| -
|
| -/*
|
| - * NSSSymmetricKey_Decrypt
|
| - *
|
| - */
|
| -
|
| -NSS_EXTERN NSSItem *
|
| -NSSSymmetricKey_Decrypt
|
| -(
|
| - NSSSymmetricKey *mk,
|
| - NSSAlgorithmAndParameters *apOpt,
|
| - NSSItem *encryptedData,
|
| - NSSCallback *uhh,
|
| - NSSItem *rvOpt,
|
| - NSSArena *arenaOpt
|
| -);
|
| -
|
| -/*
|
| - * NSSSymmetricKey_Sign
|
| - *
|
| - */
|
| -
|
| -NSS_EXTERN NSSItem *
|
| -NSSSymmetricKey_Sign
|
| -(
|
| - NSSSymmetricKey *mk,
|
| - NSSAlgorithmAndParameters *apOpt,
|
| - NSSItem *data,
|
| - NSSCallback *uhh,
|
| - NSSItem *rvOpt,
|
| - NSSArena *arenaOpt
|
| -);
|
| -
|
| -/*
|
| - * NSSSymmetricKey_SignRecover
|
| - *
|
| - */
|
| -
|
| -NSS_EXTERN NSSItem *
|
| -NSSSymmetricKey_SignRecover
|
| -(
|
| - NSSSymmetricKey *mk,
|
| - NSSAlgorithmAndParameters *apOpt,
|
| - NSSItem *data,
|
| - NSSCallback *uhh,
|
| - NSSItem *rvOpt,
|
| - NSSArena *arenaOpt
|
| -);
|
| -
|
| -/*
|
| - * NSSSymmetricKey_Verify
|
| - *
|
| - */
|
| -
|
| -NSS_EXTERN PRStatus
|
| -NSSSymmetricKey_Verify
|
| -(
|
| - NSSSymmetricKey *mk,
|
| - NSSAlgorithmAndParameters *apOpt,
|
| - NSSItem *data,
|
| - NSSItem *signature,
|
| - NSSCallback *uhh
|
| -);
|
| -
|
| -/*
|
| - * NSSSymmetricKey_VerifyRecover
|
| - *
|
| - */
|
| -
|
| -NSS_EXTERN NSSItem *
|
| -NSSSymmetricKey_VerifyRecover
|
| -(
|
| - NSSSymmetricKey *mk,
|
| - NSSAlgorithmAndParameters *apOpt,
|
| - NSSItem *signature,
|
| - NSSCallback *uhh,
|
| - NSSItem *rvOpt,
|
| - NSSArena *arenaOpt
|
| -);
|
| -
|
| -/*
|
| - * NSSSymmetricKey_WrapSymmetricKey
|
| - *
|
| - */
|
| -
|
| -NSS_EXTERN NSSItem *
|
| -NSSSymmetricKey_WrapSymmetricKey
|
| -(
|
| - NSSSymmetricKey *wrappingKey,
|
| - NSSAlgorithmAndParameters *apOpt,
|
| - NSSSymmetricKey *keyToWrap,
|
| - NSSCallback *uhh,
|
| - NSSItem *rvOpt,
|
| - NSSArena *arenaOpt
|
| -);
|
| -
|
| -/*
|
| - * NSSSymmetricKey_WrapPrivateKey
|
| - *
|
| - */
|
| -
|
| -NSS_EXTERN NSSItem *
|
| -NSSSymmetricKey_WrapPrivateKey
|
| -(
|
| - NSSSymmetricKey *wrappingKey,
|
| - NSSAlgorithmAndParameters *apOpt,
|
| - NSSPrivateKey *keyToWrap,
|
| - NSSCallback *uhh,
|
| - NSSItem *rvOpt,
|
| - NSSArena *arenaOpt
|
| -);
|
| -
|
| -/*
|
| - * NSSSymmetricKey_UnwrapSymmetricKey
|
| - *
|
| - */
|
| -
|
| -NSS_EXTERN NSSSymmetricKey *
|
| -NSSSymmetricKey_UnwrapSymmetricKey
|
| -(
|
| - NSSSymmetricKey *wrappingKey,
|
| - NSSAlgorithmAndParameters *apOpt,
|
| - NSSItem *wrappedKey,
|
| - NSSOID *target,
|
| - PRUint32 keySizeOpt,
|
| - NSSOperations operations,
|
| - NSSCallback *uhh
|
| -);
|
| -
|
| -/*
|
| - * NSSSymmetricKey_UnwrapPrivateKey
|
| - *
|
| - */
|
| -
|
| -NSS_EXTERN NSSPrivateKey *
|
| -NSSSymmetricKey_UnwrapPrivateKey
|
| -(
|
| - NSSSymmetricKey *wrappingKey,
|
| - NSSAlgorithmAndParameters *apOpt,
|
| - NSSItem *wrappedKey,
|
| - NSSUTF8 *labelOpt,
|
| - NSSItem *keyIDOpt,
|
| - PRBool persistant,
|
| - PRBool sensitive,
|
| - NSSToken *destinationOpt,
|
| - NSSCallback *uhh
|
| -);
|
| -
|
| -/*
|
| - * NSSSymmetricKey_DeriveSymmetricKey
|
| - *
|
| - */
|
| -
|
| -NSS_EXTERN NSSSymmetricKey *
|
| -NSSSymmetricKey_DeriveSymmetricKey
|
| -(
|
| - NSSSymmetricKey *originalKey,
|
| - NSSAlgorithmAndParameters *apOpt,
|
| - NSSOID *target,
|
| - PRUint32 keySizeOpt,
|
| - NSSOperations operations,
|
| - NSSCallback *uhh
|
| -);
|
| -
|
| -/*
|
| - * NSSSymmetricKey_CreateCryptoContext
|
| - *
|
| - * Create a crypto context, in this key's trust domain,
|
| - * with this as the distinguished symmetric key.
|
| - */
|
| -
|
| -NSS_EXTERN NSSCryptoContext *
|
| -NSSSymmetricKey_CreateCryptoContext
|
| -(
|
| - NSSSymmetricKey *mk,
|
| - NSSAlgorithmAndParameters *apOpt,
|
| - NSSCallback *uhh
|
| -);
|
| -
|
| -/*
|
| - * NSSTrustDomain
|
| - *
|
| - */
|
| -
|
| -/*
|
| - * NSSTrustDomain_Create
|
| - *
|
| - * This creates a trust domain, optionally with an initial cryptoki
|
| - * module. If the module name is not null, the module is loaded if
|
| - * needed (using the uriOpt argument), and initialized with the
|
| - * opaqueOpt argument. If mumble mumble priority settings, then
|
| - * module-specification objects in the module can cause the loading
|
| - * and initialization of further modules.
|
| - *
|
| - * The uriOpt is defined to take a URI. At present, we only
|
| - * support file: URLs pointing to platform-native shared libraries.
|
| - * However, by specifying this as a URI, this keeps open the
|
| - * possibility of supporting other, possibly remote, resources.
|
| - *
|
| - * The "reserved" arguments is held for when we figure out the
|
| - * module priority stuff.
|
| - */
|
| -
|
| -NSS_EXTERN NSSTrustDomain *
|
| -NSSTrustDomain_Create
|
| -(
|
| - NSSUTF8 *moduleOpt,
|
| - NSSUTF8 *uriOpt,
|
| - NSSUTF8 *opaqueOpt,
|
| - void *reserved
|
| -);
|
| -
|
| -/*
|
| - * NSSTrustDomain_Destroy
|
| - *
|
| - */
|
| -
|
| -NSS_EXTERN PRStatus
|
| -NSSTrustDomain_Destroy
|
| -(
|
| - NSSTrustDomain *td
|
| -);
|
| -
|
| -/*
|
| - * NSSTrustDomain_SetDefaultCallback
|
| - *
|
| - */
|
| -
|
| -NSS_EXTERN PRStatus
|
| -NSSTrustDomain_SetDefaultCallback
|
| -(
|
| - NSSTrustDomain *td,
|
| - NSSCallback *newCallback,
|
| - NSSCallback **oldCallbackOpt
|
| -);
|
| -
|
| -/*
|
| - * NSSTrustDomain_GetDefaultCallback
|
| - *
|
| - */
|
| -
|
| -NSS_EXTERN NSSCallback *
|
| -NSSTrustDomain_GetDefaultCallback
|
| -(
|
| - NSSTrustDomain *td,
|
| - PRStatus *statusOpt
|
| -);
|
| -
|
| -/*
|
| - * Default policies?
|
| - * Default usage?
|
| - * Default time, for completeness?
|
| - */
|
| -
|
| -/*
|
| - * NSSTrustDomain_LoadModule
|
| - *
|
| - */
|
| -
|
| -NSS_EXTERN PRStatus
|
| -NSSTrustDomain_LoadModule
|
| -(
|
| - NSSTrustDomain *td,
|
| - NSSUTF8 *moduleOpt,
|
| - NSSUTF8 *uriOpt,
|
| - NSSUTF8 *opaqueOpt,
|
| - void *reserved
|
| -);
|
| -
|
| -/*
|
| - * NSSTrustDomain_AddModule
|
| - * NSSTrustDomain_AddSlot
|
| - * NSSTrustDomain_UnloadModule
|
| - * Managing modules, slots, tokens; priorities;
|
| - * Traversing all of the above
|
| - * this needs more work
|
| - */
|
| -
|
| -/*
|
| - * NSSTrustDomain_DisableToken
|
| - *
|
| - */
|
| -
|
| -NSS_EXTERN PRStatus
|
| -NSSTrustDomain_DisableToken
|
| -(
|
| - NSSTrustDomain *td,
|
| - NSSToken *token,
|
| - NSSError why
|
| -);
|
| -
|
| -/*
|
| - * NSSTrustDomain_EnableToken
|
| - *
|
| - */
|
| -
|
| -NSS_EXTERN PRStatus
|
| -NSSTrustDomain_EnableToken
|
| -(
|
| - NSSTrustDomain *td,
|
| - NSSToken *token
|
| -);
|
| -
|
| -/*
|
| - * NSSTrustDomain_IsTokenEnabled
|
| - *
|
| - * If disabled, "why" is always on the error stack.
|
| - * The optional argument is just for convenience.
|
| - */
|
| -
|
| -NSS_EXTERN PRStatus
|
| -NSSTrustDomain_IsTokenEnabled
|
| -(
|
| - NSSTrustDomain *td,
|
| - NSSToken *token,
|
| - NSSError *whyOpt
|
| -);
|
| -
|
| -/*
|
| - * NSSTrustDomain_FindSlotByName
|
| - *
|
| - */
|
| -
|
| -NSS_EXTERN NSSSlot *
|
| -NSSTrustDomain_FindSlotByName
|
| -(
|
| - NSSTrustDomain *td,
|
| - NSSUTF8 *slotName
|
| -);
|
| -
|
| -/*
|
| - * NSSTrustDomain_FindTokenByName
|
| - *
|
| - */
|
| -
|
| -NSS_EXTERN NSSToken *
|
| -NSSTrustDomain_FindTokenByName
|
| -(
|
| - NSSTrustDomain *td,
|
| - NSSUTF8 *tokenName
|
| -);
|
| -
|
| -/*
|
| - * NSSTrustDomain_FindTokenBySlotName
|
| - *
|
| - */
|
| -
|
| -NSS_EXTERN NSSToken *
|
| -NSSTrustDomain_FindTokenBySlotName
|
| -(
|
| - NSSTrustDomain *td,
|
| - NSSUTF8 *slotName
|
| -);
|
| -
|
| -/*
|
| - * NSSTrustDomain_FindBestTokenForAlgorithm
|
| - *
|
| - */
|
| -
|
| -NSS_EXTERN NSSToken *
|
| -NSSTrustDomain_FindTokenForAlgorithm
|
| -(
|
| - NSSTrustDomain *td,
|
| - NSSOID *algorithm
|
| -);
|
| -
|
| -/*
|
| - * NSSTrustDomain_FindBestTokenForAlgorithms
|
| - *
|
| - */
|
| -
|
| -NSS_EXTERN NSSToken *
|
| -NSSTrustDomain_FindBestTokenForAlgorithms
|
| -(
|
| - NSSTrustDomain *td,
|
| - NSSOID *algorithms[], /* may be null-terminated */
|
| - PRUint32 nAlgorithmsOpt /* limits the array if nonzero */
|
| -);
|
| -
|
| -/*
|
| - * NSSTrustDomain_Login
|
| - *
|
| - */
|
| -
|
| -NSS_EXTERN PRStatus
|
| -NSSTrustDomain_Login
|
| -(
|
| - NSSTrustDomain *td,
|
| - NSSCallback *uhhOpt
|
| -);
|
| -
|
| -/*
|
| - * NSSTrustDomain_Logout
|
| - *
|
| - */
|
| -
|
| -NSS_EXTERN PRStatus
|
| -NSSTrustDomain_Logout
|
| -(
|
| - NSSTrustDomain *td
|
| -);
|
| -
|
| -/* Importing things */
|
| -
|
| -/*
|
| - * NSSTrustDomain_ImportCertificate
|
| - *
|
| - * The implementation will pull some data out of the certificate
|
| - * (e.g. e-mail address) for use in pkcs#11 object attributes.
|
| - */
|
| -
|
| -NSS_EXTERN NSSCertificate *
|
| -NSSTrustDomain_ImportCertificate
|
| -(
|
| - NSSTrustDomain *td,
|
| - NSSCertificate *c
|
| -);
|
| -
|
| -/*
|
| - * NSSTrustDomain_ImportPKIXCertificate
|
| - *
|
| - */
|
| -
|
| -NSS_EXTERN NSSCertificate *
|
| -NSSTrustDomain_ImportPKIXCertificate
|
| -(
|
| - NSSTrustDomain *td,
|
| - /* declared as a struct until these "data types" are defined */
|
| - struct NSSPKIXCertificateStr *pc
|
| -);
|
| -
|
| -/*
|
| - * NSSTrustDomain_ImportEncodedCertificate
|
| - *
|
| - * Imports any type of certificate we support.
|
| - */
|
| -
|
| -NSS_EXTERN NSSCertificate *
|
| -NSSTrustDomain_ImportEncodedCertificate
|
| -(
|
| - NSSTrustDomain *td,
|
| - NSSBER *ber
|
| -);
|
| -
|
| -/*
|
| - * NSSTrustDomain_ImportEncodedCertificateChain
|
| - *
|
| - * If you just want the leaf, pass in a maximum of one.
|
| - */
|
| -
|
| -NSS_EXTERN NSSCertificate **
|
| -NSSTrustDomain_ImportEncodedCertificateChain
|
| -(
|
| - NSSTrustDomain *td,
|
| - NSSBER *ber,
|
| - NSSCertificate *rvOpt[],
|
| - PRUint32 maximumOpt, /* 0 for no max */
|
| - NSSArena *arenaOpt
|
| -);
|
| -
|
| -/*
|
| - * NSSTrustDomain_ImportEncodedPrivateKey
|
| - *
|
| - */
|
| -
|
| -NSS_EXTERN NSSPrivateKey *
|
| -NSSTrustDomain_ImportEncodedPrivateKey
|
| -(
|
| - NSSTrustDomain *td,
|
| - NSSBER *ber,
|
| - NSSItem *passwordOpt, /* NULL will cause a callback */
|
| - NSSCallback *uhhOpt,
|
| - NSSToken *destination
|
| -);
|
| -
|
| -/*
|
| - * NSSTrustDomain_ImportEncodedPublicKey
|
| - *
|
| - */
|
| -
|
| -NSS_EXTERN NSSPublicKey *
|
| -NSSTrustDomain_ImportEncodedPublicKey
|
| -(
|
| - NSSTrustDomain *td,
|
| - NSSBER *ber
|
| -);
|
| -
|
| -/* Other importations: S/MIME capabilities */
|
| -
|
| -/*
|
| - * NSSTrustDomain_FindBestCertificateByNickname
|
| - *
|
| - */
|
| -
|
| -NSS_EXTERN NSSCertificate *
|
| -NSSTrustDomain_FindBestCertificateByNickname
|
| -(
|
| - NSSTrustDomain *td,
|
| - const NSSUTF8 *name,
|
| - NSSTime *timeOpt, /* NULL for "now" */
|
| - NSSUsage *usage,
|
| - NSSPolicies *policiesOpt /* NULL for none */
|
| -);
|
| -
|
| -/*
|
| - * NSSTrustDomain_FindCertificatesByNickname
|
| - *
|
| - */
|
| -
|
| -NSS_EXTERN NSSCertificate **
|
| -NSSTrustDomain_FindCertificatesByNickname
|
| -(
|
| - NSSTrustDomain *td,
|
| - NSSUTF8 *name,
|
| - NSSCertificate *rvOpt[],
|
| - PRUint32 maximumOpt, /* 0 for no max */
|
| - NSSArena *arenaOpt
|
| -);
|
| -
|
| -/*
|
| - * NSSTrustDomain_FindCertificateByIssuerAndSerialNumber
|
| - *
|
| - */
|
| -
|
| -NSS_EXTERN NSSCertificate *
|
| -NSSTrustDomain_FindCertificateByIssuerAndSerialNumber
|
| -(
|
| - NSSTrustDomain *td,
|
| - NSSDER *issuer,
|
| - NSSDER *serialNumber
|
| -);
|
| -
|
| -/*
|
| - * NSSTrustDomain_FindCertificatesByIssuerAndSerialNumber
|
| - *
|
| - * Theoretically, this should never happen. However, some companies
|
| - * we know have issued duplicate certificates with the same issuer
|
| - * and serial number. Do we just ignore them? I'm thinking yes.
|
| - */
|
| -
|
| -/*
|
| - * NSSTrustDomain_FindBestCertificateBySubject
|
| - *
|
| - * This does not search through alternate names hidden in extensions.
|
| - */
|
| -
|
| -NSS_EXTERN NSSCertificate *
|
| -NSSTrustDomain_FindBestCertificateBySubject
|
| -(
|
| - NSSTrustDomain *td,
|
| - NSSDER /*NSSUTF8*/ *subject,
|
| - NSSTime *timeOpt,
|
| - NSSUsage *usage,
|
| - NSSPolicies *policiesOpt
|
| -);
|
| -
|
| -/*
|
| - * NSSTrustDomain_FindCertificatesBySubject
|
| - *
|
| - * This does not search through alternate names hidden in extensions.
|
| - */
|
| -
|
| -NSS_EXTERN NSSCertificate **
|
| -NSSTrustDomain_FindCertificatesBySubject
|
| -(
|
| - NSSTrustDomain *td,
|
| - NSSDER /*NSSUTF8*/ *subject,
|
| - NSSCertificate *rvOpt[],
|
| - PRUint32 maximumOpt, /* 0 for no max */
|
| - NSSArena *arenaOpt
|
| -);
|
| -
|
| -/*
|
| - * NSSTrustDomain_FindBestCertificateByNameComponents
|
| - *
|
| - * This call does try several tricks, including a pseudo pkcs#11
|
| - * attribute for the ldap module to try as a query. Eventually
|
| - * this call falls back to a traversal if that's what's required.
|
| - * It will search through alternate names hidden in extensions.
|
| - */
|
| -
|
| -NSS_EXTERN NSSCertificate *
|
| -NSSTrustDomain_FindBestCertificateByNameComponents
|
| -(
|
| - NSSTrustDomain *td,
|
| - NSSUTF8 *nameComponents,
|
| - NSSTime *timeOpt,
|
| - NSSUsage *usage,
|
| - NSSPolicies *policiesOpt
|
| -);
|
| -
|
| -/*
|
| - * NSSTrustDomain_FindCertificatesByNameComponents
|
| - *
|
| - * This call, too, tries several tricks. It will stop on the first
|
| - * attempt that generates results, so it won't e.g. traverse the
|
| - * entire ldap database.
|
| - */
|
| -
|
| -NSS_EXTERN NSSCertificate **
|
| -NSSTrustDomain_FindCertificatesByNameComponents
|
| -(
|
| - NSSTrustDomain *td,
|
| - NSSUTF8 *nameComponents,
|
| - NSSCertificate *rvOpt[],
|
| - PRUint32 maximumOpt, /* 0 for no max */
|
| - NSSArena *arenaOpt
|
| -);
|
| -
|
| -/*
|
| - * NSSTrustDomain_FindCertificateByEncodedCertificate
|
| - *
|
| - */
|
| -
|
| -NSS_EXTERN NSSCertificate *
|
| -NSSTrustDomain_FindCertificateByEncodedCertificate
|
| -(
|
| - NSSTrustDomain *td,
|
| - NSSBER *encodedCertificate
|
| -);
|
| -
|
| -/*
|
| - * NSSTrustDomain_FindBestCertificateByEmail
|
| - *
|
| - */
|
| -
|
| -NSS_EXTERN NSSCertificate *
|
| -NSSTrustDomain_FindCertificateByEmail
|
| -(
|
| - NSSTrustDomain *td,
|
| - NSSASCII7 *email,
|
| - NSSTime *timeOpt,
|
| - NSSUsage *usage,
|
| - NSSPolicies *policiesOpt
|
| -);
|
| -
|
| -/*
|
| - * NSSTrustDomain_FindCertificatesByEmail
|
| - *
|
| - */
|
| -
|
| -NSS_EXTERN NSSCertificate **
|
| -NSSTrustDomain_FindCertificatesByEmail
|
| -(
|
| - NSSTrustDomain *td,
|
| - NSSASCII7 *email,
|
| - NSSCertificate *rvOpt[],
|
| - PRUint32 maximumOpt, /* 0 for no max */
|
| - NSSArena *arenaOpt
|
| -);
|
| -
|
| -/*
|
| - * NSSTrustDomain_FindCertificateByOCSPHash
|
| - *
|
| - * There can be only one.
|
| - */
|
| -
|
| -NSS_EXTERN NSSCertificate *
|
| -NSSTrustDomain_FindCertificateByOCSPHash
|
| -(
|
| - NSSTrustDomain *td,
|
| - NSSItem *hash
|
| -);
|
| -
|
| -/*
|
| - * NSSTrustDomain_TraverseCertificates
|
| - *
|
| - * This function descends from one in older versions of NSS which
|
| - * traverses the certs in the permanent database. That function
|
| - * was used to implement selection routines, but was directly
|
| - * available too. Trust domains are going to contain a lot more
|
| - * certs now (e.g., an ldap server), so we'd really like to
|
| - * discourage traversal. Thus for now, this is commented out.
|
| - * If it's needed, let's look at the situation more closely to
|
| - * find out what the actual requirements are.
|
| - */
|
| -
|
| -/* For now, adding this function. This may only be for debugging
|
| - * purposes.
|
| - * Perhaps some equivalent function, on a specified token, will be
|
| - * needed in a "friend" header file?
|
| - */
|
| -NSS_EXTERN PRStatus *
|
| -NSSTrustDomain_TraverseCertificates
|
| -(
|
| - NSSTrustDomain *td,
|
| - PRStatus (*callback)(NSSCertificate *c, void *arg),
|
| - void *arg
|
| -);
|
| -
|
| -/*
|
| - * NSSTrustDomain_FindBestUserCertificate
|
| - *
|
| - */
|
| -
|
| -NSS_EXTERN NSSCertificate *
|
| -NSSTrustDomain_FindBestUserCertificate
|
| -(
|
| - NSSTrustDomain *td,
|
| - NSSTime *timeOpt,
|
| - NSSUsage *usage,
|
| - NSSPolicies *policiesOpt
|
| -);
|
| -
|
| -/*
|
| - * NSSTrustDomain_FindUserCertificates
|
| - *
|
| - */
|
| -
|
| -NSS_EXTERN NSSCertificate **
|
| -NSSTrustDomain_FindUserCertificates
|
| -(
|
| - NSSTrustDomain *td,
|
| - NSSTime *timeOpt,
|
| - NSSUsage *usageOpt,
|
| - NSSPolicies *policiesOpt,
|
| - NSSCertificate **rvOpt,
|
| - PRUint32 rvLimit, /* zero for no limit */
|
| - NSSArena *arenaOpt
|
| -);
|
| -
|
| -/*
|
| - * NSSTrustDomain_FindBestUserCertificateForSSLClientAuth
|
| - *
|
| - */
|
| -
|
| -NSS_EXTERN NSSCertificate *
|
| -NSSTrustDomain_FindBestUserCertificateForSSLClientAuth
|
| -(
|
| - NSSTrustDomain *td,
|
| - NSSUTF8 *sslHostOpt,
|
| - NSSDER *rootCAsOpt[], /* null pointer for none */
|
| - PRUint32 rootCAsMaxOpt, /* zero means list is null-terminated */
|
| - NSSAlgorithmAndParameters *apOpt,
|
| - NSSPolicies *policiesOpt
|
| -);
|
| -
|
| -/*
|
| - * NSSTrustDomain_FindUserCertificatesForSSLClientAuth
|
| - *
|
| - */
|
| -
|
| -NSS_EXTERN NSSCertificate **
|
| -NSSTrustDomain_FindUserCertificatesForSSLClientAuth
|
| -(
|
| - NSSTrustDomain *td,
|
| - NSSUTF8 *sslHostOpt,
|
| - NSSDER *rootCAsOpt[], /* null pointer for none */
|
| - PRUint32 rootCAsMaxOpt, /* zero means list is null-terminated */
|
| - NSSAlgorithmAndParameters *apOpt,
|
| - NSSPolicies *policiesOpt,
|
| - NSSCertificate **rvOpt,
|
| - PRUint32 rvLimit, /* zero for no limit */
|
| - NSSArena *arenaOpt
|
| -);
|
| -
|
| -/*
|
| - * NSSTrustDomain_FindBestUserCertificateForEmailSigning
|
| - *
|
| - */
|
| -
|
| -NSS_EXTERN NSSCertificate *
|
| -NSSTrustDomain_FindBestUserCertificateForEmailSigning
|
| -(
|
| - NSSTrustDomain *td,
|
| - NSSASCII7 *signerOpt,
|
| - NSSASCII7 *recipientOpt,
|
| - /* anything more here? */
|
| - NSSAlgorithmAndParameters *apOpt,
|
| - NSSPolicies *policiesOpt
|
| -);
|
| -
|
| -/*
|
| - * NSSTrustDomain_FindUserCertificatesForEmailSigning
|
| - *
|
| - */
|
| -
|
| -NSS_EXTERN NSSCertificate **
|
| -NSSTrustDomain_FindUserCertificatesForEmailSigning
|
| -(
|
| - NSSTrustDomain *td,
|
| - NSSASCII7 *signerOpt,
|
| - NSSASCII7 *recipientOpt,
|
| - /* anything more here? */
|
| - NSSAlgorithmAndParameters *apOpt,
|
| - NSSPolicies *policiesOpt,
|
| - NSSCertificate **rvOpt,
|
| - PRUint32 rvLimit, /* zero for no limit */
|
| - NSSArena *arenaOpt
|
| -);
|
| -
|
| -/*
|
| - * Here is where we'd add more Find[Best]UserCertificate[s]For<usage>
|
| - * routines.
|
| - */
|
| -
|
| -/* Private Keys */
|
| -
|
| -/*
|
| - * NSSTrustDomain_GenerateKeyPair
|
| - *
|
| - * Creates persistant objects. If you want session objects, use
|
| - * NSSCryptoContext_GenerateKeyPair. The destination token is where
|
| - * the keys are stored. If that token can do the required math, then
|
| - * that's where the keys are generated too. Otherwise, the keys are
|
| - * generated elsewhere and moved to that token.
|
| - */
|
| -
|
| -NSS_EXTERN PRStatus
|
| -NSSTrustDomain_GenerateKeyPair
|
| -(
|
| - NSSTrustDomain *td,
|
| - NSSAlgorithmAndParameters *ap,
|
| - NSSPrivateKey **pvkOpt,
|
| - NSSPublicKey **pbkOpt,
|
| - PRBool privateKeyIsSensitive,
|
| - NSSToken *destination,
|
| - NSSCallback *uhhOpt
|
| -);
|
| -
|
| -/*
|
| - * NSSTrustDomain_TraversePrivateKeys
|
| - *
|
| - *
|
| - * NSS_EXTERN PRStatus *
|
| - * NSSTrustDomain_TraversePrivateKeys
|
| - * (
|
| - * NSSTrustDomain *td,
|
| - * PRStatus (*callback)(NSSPrivateKey *vk, void *arg),
|
| - * void *arg
|
| - * );
|
| - */
|
| -
|
| -/* Symmetric Keys */
|
| -
|
| -/*
|
| - * NSSTrustDomain_GenerateSymmetricKey
|
| - *
|
| - */
|
| -
|
| -NSS_EXTERN NSSSymmetricKey *
|
| -NSSTrustDomain_GenerateSymmetricKey
|
| -(
|
| - NSSTrustDomain *td,
|
| - NSSAlgorithmAndParameters *ap,
|
| - PRUint32 keysize,
|
| - NSSToken *destination,
|
| - NSSCallback *uhhOpt
|
| -);
|
| -
|
| -/*
|
| - * NSSTrustDomain_GenerateSymmetricKeyFromPassword
|
| - *
|
| - */
|
| -
|
| -NSS_EXTERN NSSSymmetricKey *
|
| -NSSTrustDomain_GenerateSymmetricKeyFromPassword
|
| -(
|
| - NSSTrustDomain *td,
|
| - NSSAlgorithmAndParameters *ap,
|
| - NSSUTF8 *passwordOpt, /* if null, prompt */
|
| - NSSToken *destinationOpt,
|
| - NSSCallback *uhhOpt
|
| -);
|
| -
|
| -/*
|
| - * NSSTrustDomain_FindSymmetricKeyByAlgorithm
|
| - *
|
| - * Is this still needed?
|
| - *
|
| - * NSS_EXTERN NSSSymmetricKey *
|
| - * NSSTrustDomain_FindSymmetricKeyByAlgorithm
|
| - * (
|
| - * NSSTrustDomain *td,
|
| - * NSSOID *algorithm,
|
| - * NSSCallback *uhhOpt
|
| - * );
|
| - */
|
| -
|
| -/*
|
| - * NSSTrustDomain_FindSymmetricKeyByAlgorithmAndKeyID
|
| - *
|
| - */
|
| -
|
| -NSS_EXTERN NSSSymmetricKey *
|
| -NSSTrustDomain_FindSymmetricKeyByAlgorithmAndKeyID
|
| -(
|
| - NSSTrustDomain *td,
|
| - NSSOID *algorithm,
|
| - NSSItem *keyID,
|
| - NSSCallback *uhhOpt
|
| -);
|
| -
|
| -/*
|
| - * NSSTrustDomain_TraverseSymmetricKeys
|
| - *
|
| - *
|
| - * NSS_EXTERN PRStatus *
|
| - * NSSTrustDomain_TraverseSymmetricKeys
|
| - * (
|
| - * NSSTrustDomain *td,
|
| - * PRStatus (*callback)(NSSSymmetricKey *mk, void *arg),
|
| - * void *arg
|
| - * );
|
| - */
|
| -
|
| -/*
|
| - * NSSTrustDomain_CreateCryptoContext
|
| - *
|
| - * If a callback object is specified, it becomes the for the crypto
|
| - * context; otherwise, this trust domain's default (if any) is
|
| - * inherited.
|
| - */
|
| -
|
| -NSS_EXTERN NSSCryptoContext *
|
| -NSSTrustDomain_CreateCryptoContext
|
| -(
|
| - NSSTrustDomain *td,
|
| - NSSCallback *uhhOpt
|
| -);
|
| -
|
| -/*
|
| - * NSSTrustDomain_CreateCryptoContextForAlgorithm
|
| - *
|
| - */
|
| -
|
| -NSS_EXTERN NSSCryptoContext *
|
| -NSSTrustDomain_CreateCryptoContextForAlgorithm
|
| -(
|
| - NSSTrustDomain *td,
|
| - NSSOID *algorithm
|
| -);
|
| -
|
| -/*
|
| - * NSSTrustDomain_CreateCryptoContextForAlgorithmAndParameters
|
| - *
|
| - */
|
| -
|
| -NSS_EXTERN NSSCryptoContext *
|
| -NSSTrustDomain_CreateCryptoContextForAlgorithmAndParameters
|
| -(
|
| - NSSTrustDomain *td,
|
| - NSSAlgorithmAndParameters *ap
|
| -);
|
| -
|
| -/* find/traverse other objects, e.g. s/mime profiles */
|
| -
|
| -/*
|
| - * NSSCryptoContext
|
| - *
|
| - * A crypto context is sort of a short-term snapshot of a trust domain,
|
| - * used for the life of "one crypto operation." You can also think of
|
| - * it as a "temporary database."
|
| - *
|
| - * Just about all of the things you can do with a trust domain -- importing
|
| - * or creating certs, keys, etc. -- can be done with a crypto context.
|
| - * The difference is that the objects will be temporary ("session") objects.
|
| - *
|
| - * Also, if the context was created for a key, cert, and/or algorithm; or
|
| - * if such objects have been "associated" with the context, then the context
|
| - * can do everything the keys can, like crypto operations.
|
| - *
|
| - * And finally, because it keeps the state of the crypto operations, it
|
| - * can do streaming crypto ops.
|
| - */
|
| -
|
| -/*
|
| - * NSSTrustDomain_Destroy
|
| - *
|
| - */
|
| -
|
| -NSS_EXTERN PRStatus
|
| -NSSCryptoContext_Destroy
|
| -(
|
| - NSSCryptoContext *cc
|
| -);
|
| -
|
| -/* establishing a default callback */
|
| -
|
| -/*
|
| - * NSSCryptoContext_SetDefaultCallback
|
| - *
|
| - */
|
| -
|
| -NSS_EXTERN PRStatus
|
| -NSSCryptoContext_SetDefaultCallback
|
| -(
|
| - NSSCryptoContext *cc,
|
| - NSSCallback *newCallback,
|
| - NSSCallback **oldCallbackOpt
|
| -);
|
| -
|
| -/*
|
| - * NSSCryptoContext_GetDefaultCallback
|
| - *
|
| - */
|
| -
|
| -NSS_EXTERN NSSCallback *
|
| -NSSCryptoContext_GetDefaultCallback
|
| -(
|
| - NSSCryptoContext *cc,
|
| - PRStatus *statusOpt
|
| -);
|
| -
|
| -/*
|
| - * NSSCryptoContext_GetTrustDomain
|
| - *
|
| - */
|
| -
|
| -NSS_EXTERN NSSTrustDomain *
|
| -NSSCryptoContext_GetTrustDomain
|
| -(
|
| - NSSCryptoContext *cc
|
| -);
|
| -
|
| -/* AddModule, etc: should we allow "temporary" changes here? */
|
| -/* DisableToken, etc: ditto */
|
| -/* Ordering of tokens? */
|
| -/* Finding slots+token etc. */
|
| -/* login+logout */
|
| -
|
| -/* Importing things */
|
| -
|
| -/*
|
| - * NSSCryptoContext_FindOrImportCertificate
|
| - *
|
| - * If the certificate store already contains this DER cert, return the
|
| - * address of the matching NSSCertificate that is already in the store,
|
| - * and bump its reference count.
|
| - *
|
| - * If this DER cert is NOT already in the store, then add the new
|
| - * NSSCertificate to the store and bump its reference count,
|
| - * then return its address.
|
| - *
|
| - * if this DER cert is not in the store and cannot be added to it,
|
| - * return NULL;
|
| - *
|
| - * Record the associated crypto context in the certificate.
|
| - */
|
| -
|
| -NSS_EXTERN NSSCertificate *
|
| -NSSCryptoContext_FindOrImportCertificate (
|
| - NSSCryptoContext *cc,
|
| - NSSCertificate *c
|
| -);
|
| -
|
| -/*
|
| - * NSSCryptoContext_ImportPKIXCertificate
|
| - *
|
| - */
|
| -
|
| -NSS_EXTERN NSSCertificate *
|
| -NSSCryptoContext_ImportPKIXCertificate
|
| -(
|
| - NSSCryptoContext *cc,
|
| - struct NSSPKIXCertificateStr *pc
|
| -);
|
| -
|
| -/*
|
| - * NSSCryptoContext_ImportEncodedCertificate
|
| - *
|
| - */
|
| -
|
| -NSS_EXTERN NSSCertificate *
|
| -NSSCryptoContext_ImportEncodedCertificate
|
| -(
|
| - NSSCryptoContext *cc,
|
| - NSSBER *ber
|
| -);
|
| -
|
| -/*
|
| - * NSSCryptoContext_ImportEncodedPKIXCertificateChain
|
| - *
|
| - */
|
| -
|
| -NSS_EXTERN PRStatus
|
| -NSSCryptoContext_ImportEncodedPKIXCertificateChain
|
| -(
|
| - NSSCryptoContext *cc,
|
| - NSSBER *ber
|
| -);
|
| -
|
| -/* Other importations: S/MIME capabilities
|
| - */
|
| -
|
| -/*
|
| - * NSSCryptoContext_FindBestCertificateByNickname
|
| - *
|
| - */
|
| -
|
| -NSS_EXTERN NSSCertificate *
|
| -NSSCryptoContext_FindBestCertificateByNickname
|
| -(
|
| - NSSCryptoContext *cc,
|
| - const NSSUTF8 *name,
|
| - NSSTime *timeOpt, /* NULL for "now" */
|
| - NSSUsage *usage,
|
| - NSSPolicies *policiesOpt /* NULL for none */
|
| -);
|
| -
|
| -/*
|
| - * NSSCryptoContext_FindCertificatesByNickname
|
| - *
|
| - */
|
| -
|
| -NSS_EXTERN NSSCertificate **
|
| -NSSCryptoContext_FindCertificatesByNickname
|
| -(
|
| - NSSCryptoContext *cc,
|
| - NSSUTF8 *name,
|
| - NSSCertificate *rvOpt[],
|
| - PRUint32 maximumOpt, /* 0 for no max */
|
| - NSSArena *arenaOpt
|
| -);
|
| -
|
| -/*
|
| - * NSSCryptoContext_FindCertificateByIssuerAndSerialNumber
|
| - *
|
| - */
|
| -
|
| -NSS_EXTERN NSSCertificate *
|
| -NSSCryptoContext_FindCertificateByIssuerAndSerialNumber
|
| -(
|
| - NSSCryptoContext *cc,
|
| - NSSDER *issuer,
|
| - NSSDER *serialNumber
|
| -);
|
| -
|
| -/*
|
| - * NSSCryptoContext_FindBestCertificateBySubject
|
| - *
|
| - * This does not search through alternate names hidden in extensions.
|
| - */
|
| -
|
| -NSS_EXTERN NSSCertificate *
|
| -NSSCryptoContext_FindBestCertificateBySubject
|
| -(
|
| - NSSCryptoContext *cc,
|
| - NSSDER /*NSSUTF8*/ *subject,
|
| - NSSTime *timeOpt,
|
| - NSSUsage *usage,
|
| - NSSPolicies *policiesOpt
|
| -);
|
| -
|
| -/*
|
| - * NSSCryptoContext_FindCertificatesBySubject
|
| - *
|
| - * This does not search through alternate names hidden in extensions.
|
| - */
|
| -
|
| -NSS_EXTERN NSSCertificate **
|
| -NSSCryptoContext_FindCertificatesBySubject
|
| -(
|
| - NSSCryptoContext *cc,
|
| - NSSDER /*NSSUTF8*/ *subject,
|
| - NSSCertificate *rvOpt[],
|
| - PRUint32 maximumOpt, /* 0 for no max */
|
| - NSSArena *arenaOpt
|
| -);
|
| -
|
| -/*
|
| - * NSSCryptoContext_FindBestCertificateByNameComponents
|
| - *
|
| - * This call does try several tricks, including a pseudo pkcs#11
|
| - * attribute for the ldap module to try as a query. Eventually
|
| - * this call falls back to a traversal if that's what's required.
|
| - * It will search through alternate names hidden in extensions.
|
| - */
|
| -
|
| -NSS_EXTERN NSSCertificate *
|
| -NSSCryptoContext_FindBestCertificateByNameComponents
|
| -(
|
| - NSSCryptoContext *cc,
|
| - NSSUTF8 *nameComponents,
|
| - NSSTime *timeOpt,
|
| - NSSUsage *usage,
|
| - NSSPolicies *policiesOpt
|
| -);
|
| -
|
| -/*
|
| - * NSSCryptoContext_FindCertificatesByNameComponents
|
| - *
|
| - * This call, too, tries several tricks. It will stop on the first
|
| - * attempt that generates results, so it won't e.g. traverse the
|
| - * entire ldap database.
|
| - */
|
| -
|
| -NSS_EXTERN NSSCertificate **
|
| -NSSCryptoContext_FindCertificatesByNameComponents
|
| -(
|
| - NSSCryptoContext *cc,
|
| - NSSUTF8 *nameComponents,
|
| - NSSCertificate *rvOpt[],
|
| - PRUint32 maximumOpt, /* 0 for no max */
|
| - NSSArena *arenaOpt
|
| -);
|
| -
|
| -/*
|
| - * NSSCryptoContext_FindCertificateByEncodedCertificate
|
| - *
|
| - */
|
| -
|
| -NSS_EXTERN NSSCertificate *
|
| -NSSCryptoContext_FindCertificateByEncodedCertificate
|
| -(
|
| - NSSCryptoContext *cc,
|
| - NSSBER *encodedCertificate
|
| -);
|
| -
|
| -/*
|
| - * NSSCryptoContext_FindBestCertificateByEmail
|
| - *
|
| - */
|
| -
|
| -NSS_EXTERN NSSCertificate *
|
| -NSSCryptoContext_FindBestCertificateByEmail
|
| -(
|
| - NSSCryptoContext *cc,
|
| - NSSASCII7 *email,
|
| - NSSTime *timeOpt,
|
| - NSSUsage *usage,
|
| - NSSPolicies *policiesOpt
|
| -);
|
| -
|
| -/*
|
| - * NSSCryptoContext_FindCertificatesByEmail
|
| - *
|
| - */
|
| -
|
| -NSS_EXTERN NSSCertificate **
|
| -NSSCryptoContext_FindCertificatesByEmail
|
| -(
|
| - NSSCryptoContext *cc,
|
| - NSSASCII7 *email,
|
| - NSSCertificate *rvOpt[],
|
| - PRUint32 maximumOpt, /* 0 for no max */
|
| - NSSArena *arenaOpt
|
| -);
|
| -
|
| -/*
|
| - * NSSCryptoContext_FindCertificateByOCSPHash
|
| - *
|
| - */
|
| -
|
| -NSS_EXTERN NSSCertificate *
|
| -NSSCryptoContext_FindCertificateByOCSPHash
|
| -(
|
| - NSSCryptoContext *cc,
|
| - NSSItem *hash
|
| -);
|
| -
|
| -/*
|
| - * NSSCryptoContext_TraverseCertificates
|
| - *
|
| - *
|
| - * NSS_EXTERN PRStatus *
|
| - * NSSCryptoContext_TraverseCertificates
|
| - * (
|
| - * NSSCryptoContext *cc,
|
| - * PRStatus (*callback)(NSSCertificate *c, void *arg),
|
| - * void *arg
|
| - * );
|
| - */
|
| -
|
| -/*
|
| - * NSSCryptoContext_FindBestUserCertificate
|
| - *
|
| - */
|
| -
|
| -NSS_EXTERN NSSCertificate *
|
| -NSSCryptoContext_FindBestUserCertificate
|
| -(
|
| - NSSCryptoContext *cc,
|
| - NSSTime *timeOpt,
|
| - NSSUsage *usage,
|
| - NSSPolicies *policiesOpt
|
| -);
|
| -
|
| -/*
|
| - * NSSCryptoContext_FindUserCertificates
|
| - *
|
| - */
|
| -
|
| -NSS_EXTERN NSSCertificate **
|
| -NSSCryptoContext_FindUserCertificates
|
| -(
|
| - NSSCryptoContext *cc,
|
| - NSSTime *timeOpt,
|
| - NSSUsage *usageOpt,
|
| - NSSPolicies *policiesOpt,
|
| - NSSCertificate **rvOpt,
|
| - PRUint32 rvLimit, /* zero for no limit */
|
| - NSSArena *arenaOpt
|
| -);
|
| -
|
| -/*
|
| - * NSSCryptoContext_FindBestUserCertificateForSSLClientAuth
|
| - *
|
| - */
|
| -
|
| -NSS_EXTERN NSSCertificate *
|
| -NSSCryptoContext_FindBestUserCertificateForSSLClientAuth
|
| -(
|
| - NSSCryptoContext *cc,
|
| - NSSUTF8 *sslHostOpt,
|
| - NSSDER *rootCAsOpt[], /* null pointer for none */
|
| - PRUint32 rootCAsMaxOpt, /* zero means list is null-terminated */
|
| - NSSAlgorithmAndParameters *apOpt,
|
| - NSSPolicies *policiesOpt
|
| -);
|
| -
|
| -/*
|
| - * NSSCryptoContext_FindUserCertificatesForSSLClientAuth
|
| - *
|
| - */
|
| -
|
| -NSS_EXTERN NSSCertificate **
|
| -NSSCryptoContext_FindUserCertificatesForSSLClientAuth
|
| -(
|
| - NSSCryptoContext *cc,
|
| - NSSUTF8 *sslHostOpt,
|
| - NSSDER *rootCAsOpt[], /* null pointer for none */
|
| - PRUint32 rootCAsMaxOpt, /* zero means list is null-terminated */
|
| - NSSAlgorithmAndParameters *apOpt,
|
| - NSSPolicies *policiesOpt,
|
| - NSSCertificate **rvOpt,
|
| - PRUint32 rvLimit, /* zero for no limit */
|
| - NSSArena *arenaOpt
|
| -);
|
| -
|
| -/*
|
| - * NSSCryptoContext_FindBestUserCertificateForEmailSigning
|
| - *
|
| - */
|
| -
|
| -NSS_EXTERN NSSCertificate *
|
| -NSSCryptoContext_FindBestUserCertificateForEmailSigning
|
| -(
|
| - NSSCryptoContext *cc,
|
| - NSSASCII7 *signerOpt,
|
| - NSSASCII7 *recipientOpt,
|
| - /* anything more here? */
|
| - NSSAlgorithmAndParameters *apOpt,
|
| - NSSPolicies *policiesOpt
|
| -);
|
| -
|
| -/*
|
| - * NSSCryptoContext_FindUserCertificatesForEmailSigning
|
| - *
|
| - */
|
| -
|
| -NSS_EXTERN NSSCertificate *
|
| -NSSCryptoContext_FindUserCertificatesForEmailSigning
|
| -(
|
| - NSSCryptoContext *cc,
|
| - NSSASCII7 *signerOpt, /* fgmr or a more general name? */
|
| - NSSASCII7 *recipientOpt,
|
| - /* anything more here? */
|
| - NSSAlgorithmAndParameters *apOpt,
|
| - NSSPolicies *policiesOpt,
|
| - NSSCertificate **rvOpt,
|
| - PRUint32 rvLimit, /* zero for no limit */
|
| - NSSArena *arenaOpt
|
| -);
|
| -
|
| -/* Private Keys */
|
| -
|
| -/*
|
| - * NSSCryptoContext_GenerateKeyPair
|
| - *
|
| - * Creates session objects. If you want persistant objects, use
|
| - * NSSTrustDomain_GenerateKeyPair. The destination token is where
|
| - * the keys are stored. If that token can do the required math, then
|
| - * that's where the keys are generated too. Otherwise, the keys are
|
| - * generated elsewhere and moved to that token.
|
| - */
|
| -
|
| -NSS_EXTERN PRStatus
|
| -NSSCryptoContext_GenerateKeyPair
|
| -(
|
| - NSSCryptoContext *cc,
|
| - NSSAlgorithmAndParameters *ap,
|
| - NSSPrivateKey **pvkOpt,
|
| - NSSPublicKey **pbkOpt,
|
| - PRBool privateKeyIsSensitive,
|
| - NSSToken *destination,
|
| - NSSCallback *uhhOpt
|
| -);
|
| -
|
| -/*
|
| - * NSSCryptoContext_TraversePrivateKeys
|
| - *
|
| - *
|
| - * NSS_EXTERN PRStatus *
|
| - * NSSCryptoContext_TraversePrivateKeys
|
| - * (
|
| - * NSSCryptoContext *cc,
|
| - * PRStatus (*callback)(NSSPrivateKey *vk, void *arg),
|
| - * void *arg
|
| - * );
|
| - */
|
| -
|
| -/* Symmetric Keys */
|
| -
|
| -/*
|
| - * NSSCryptoContext_GenerateSymmetricKey
|
| - *
|
| - */
|
| -
|
| -NSS_EXTERN NSSSymmetricKey *
|
| -NSSCryptoContext_GenerateSymmetricKey
|
| -(
|
| - NSSCryptoContext *cc,
|
| - NSSAlgorithmAndParameters *ap,
|
| - PRUint32 keysize,
|
| - NSSToken *destination,
|
| - NSSCallback *uhhOpt
|
| -);
|
| -
|
| -/*
|
| - * NSSCryptoContext_GenerateSymmetricKeyFromPassword
|
| - *
|
| - */
|
| -
|
| -NSS_EXTERN NSSSymmetricKey *
|
| -NSSCryptoContext_GenerateSymmetricKeyFromPassword
|
| -(
|
| - NSSCryptoContext *cc,
|
| - NSSAlgorithmAndParameters *ap,
|
| - NSSUTF8 *passwordOpt, /* if null, prompt */
|
| - NSSToken *destinationOpt,
|
| - NSSCallback *uhhOpt
|
| -);
|
| -
|
| -/*
|
| - * NSSCryptoContext_FindSymmetricKeyByAlgorithm
|
| - *
|
| - *
|
| - * NSS_EXTERN NSSSymmetricKey *
|
| - * NSSCryptoContext_FindSymmetricKeyByType
|
| - * (
|
| - * NSSCryptoContext *cc,
|
| - * NSSOID *type,
|
| - * NSSCallback *uhhOpt
|
| - * );
|
| - */
|
| -
|
| -/*
|
| - * NSSCryptoContext_FindSymmetricKeyByAlgorithmAndKeyID
|
| - *
|
| - */
|
| -
|
| -NSS_EXTERN NSSSymmetricKey *
|
| -NSSCryptoContext_FindSymmetricKeyByAlgorithmAndKeyID
|
| -(
|
| - NSSCryptoContext *cc,
|
| - NSSOID *algorithm,
|
| - NSSItem *keyID,
|
| - NSSCallback *uhhOpt
|
| -);
|
| -
|
| -/*
|
| - * NSSCryptoContext_TraverseSymmetricKeys
|
| - *
|
| - *
|
| - * NSS_EXTERN PRStatus *
|
| - * NSSCryptoContext_TraverseSymmetricKeys
|
| - * (
|
| - * NSSCryptoContext *cc,
|
| - * PRStatus (*callback)(NSSSymmetricKey *mk, void *arg),
|
| - * void *arg
|
| - * );
|
| - */
|
| -
|
| -/* Crypto ops on distinguished keys */
|
| -
|
| -/*
|
| - * NSSCryptoContext_Decrypt
|
| - *
|
| - */
|
| -
|
| -NSS_EXTERN NSSItem *
|
| -NSSCryptoContext_Decrypt
|
| -(
|
| - NSSCryptoContext *cc,
|
| - NSSAlgorithmAndParameters *apOpt,
|
| - NSSItem *encryptedData,
|
| - NSSCallback *uhhOpt,
|
| - NSSItem *rvOpt,
|
| - NSSArena *arenaOpt
|
| -);
|
| -
|
| -/*
|
| - * NSSCryptoContext_BeginDecrypt
|
| - *
|
| - */
|
| -
|
| -NSS_EXTERN PRStatus
|
| -NSSCryptoContext_BeginDecrypt
|
| -(
|
| - NSSCryptoContext *cc,
|
| - NSSAlgorithmAndParameters *apOpt,
|
| - NSSCallback *uhhOpt
|
| -);
|
| -
|
| -/*
|
| - * NSSCryptoContext_ContinueDecrypt
|
| - *
|
| - */
|
| -
|
| -/*
|
| - * NSSItem semantics:
|
| - *
|
| - * If rvOpt is NULL, a new NSSItem and buffer are allocated.
|
| - * If rvOpt is not null, but the buffer pointer is null,
|
| - * then rvOpt is returned but a new buffer is allocated.
|
| - * In this case, if the length value is not zero, then
|
| - * no more than that much space will be allocated.
|
| - * If rvOpt is not null and the buffer pointer is not null,
|
| - * then that buffer is re-used. No more than the buffer
|
| - * length value will be used; if it's not enough, an
|
| - * error is returned. If less is used, the number is
|
| - * adjusted downwards.
|
| - *
|
| - * Note that although this is short of some ideal "Item"
|
| - * definition, we can usually tell how big these buffers
|
| - * have to be.
|
| - *
|
| - * Feedback is requested; and earlier is better than later.
|
| - */
|
| -
|
| -NSS_EXTERN NSSItem *
|
| -NSSCryptoContext_ContinueDecrypt
|
| -(
|
| - NSSCryptoContext *cc,
|
| - NSSItem *data,
|
| - NSSItem *rvOpt,
|
| - NSSArena *arenaOpt
|
| -);
|
| -
|
| -/*
|
| - * NSSCryptoContext_FinishDecrypt
|
| - *
|
| - */
|
| -
|
| -NSS_EXTERN NSSItem *
|
| -NSSCryptoContext_FinishDecrypt
|
| -(
|
| - NSSCryptoContext *cc,
|
| - NSSItem *rvOpt,
|
| - NSSArena *arenaOpt
|
| -);
|
| -
|
| -/*
|
| - * NSSCryptoContext_Sign
|
| - *
|
| - */
|
| -
|
| -NSS_EXTERN NSSItem *
|
| -NSSCryptoContext_Sign
|
| -(
|
| - NSSCryptoContext *cc,
|
| - NSSAlgorithmAndParameters *apOpt,
|
| - NSSItem *data,
|
| - NSSCallback *uhhOpt,
|
| - NSSItem *rvOpt,
|
| - NSSArena *arenaOpt
|
| -);
|
| -
|
| -/*
|
| - * NSSCryptoContext_BeginSign
|
| - *
|
| - */
|
| -
|
| -NSS_EXTERN PRStatus
|
| -NSSCryptoContext_BeginSign
|
| -(
|
| - NSSCryptoContext *cc,
|
| - NSSAlgorithmAndParameters *apOpt,
|
| - NSSCallback *uhhOpt
|
| -);
|
| -
|
| -/*
|
| - * NSSCryptoContext_ContinueSign
|
| - *
|
| - */
|
| -
|
| -NSS_EXTERN PRStatus
|
| -NSSCryptoContext_ContinueSign
|
| -(
|
| - NSSCryptoContext *cc,
|
| - NSSItem *data
|
| -);
|
| -
|
| -/*
|
| - * NSSCryptoContext_FinishSign
|
| - *
|
| - */
|
| -
|
| -NSS_EXTERN NSSItem *
|
| -NSSCryptoContext_FinishSign
|
| -(
|
| - NSSCryptoContext *cc,
|
| - NSSItem *rvOpt,
|
| - NSSArena *arenaOpt
|
| -);
|
| -
|
| -/*
|
| - * NSSCryptoContext_SignRecover
|
| - *
|
| - */
|
| -
|
| -NSS_EXTERN NSSItem *
|
| -NSSCryptoContext_SignRecover
|
| -(
|
| - NSSCryptoContext *cc,
|
| - NSSAlgorithmAndParameters *apOpt,
|
| - NSSItem *data,
|
| - NSSCallback *uhhOpt,
|
| - NSSItem *rvOpt,
|
| - NSSArena *arenaOpt
|
| -);
|
| -
|
| -/*
|
| - * NSSCryptoContext_BeginSignRecover
|
| - *
|
| - */
|
| -
|
| -NSS_EXTERN PRStatus
|
| -NSSCryptoContext_BeginSignRecover
|
| -(
|
| - NSSCryptoContext *cc,
|
| - NSSAlgorithmAndParameters *apOpt,
|
| - NSSCallback *uhhOpt
|
| -);
|
| -
|
| -/*
|
| - * NSSCryptoContext_ContinueSignRecover
|
| - *
|
| - */
|
| -
|
| -NSS_EXTERN NSSItem *
|
| -NSSCryptoContext_ContinueSignRecover
|
| -(
|
| - NSSCryptoContext *cc,
|
| - NSSItem *data,
|
| - NSSItem *rvOpt,
|
| - NSSArena *arenaOpt
|
| -);
|
| -
|
| -/*
|
| - * NSSCryptoContext_FinishSignRecover
|
| - *
|
| - */
|
| -
|
| -NSS_EXTERN NSSItem *
|
| -NSSCryptoContext_FinishSignRecover
|
| -(
|
| - NSSCryptoContext *cc,
|
| - NSSItem *rvOpt,
|
| - NSSArena *arenaOpt
|
| -);
|
| -
|
| -/*
|
| - * NSSCryptoContext_UnwrapSymmetricKey
|
| - *
|
| - */
|
| -
|
| -NSS_EXTERN NSSSymmetricKey *
|
| -NSSCryptoContext_UnwrapSymmetricKey
|
| -(
|
| - NSSCryptoContext *cc,
|
| - NSSAlgorithmAndParameters *apOpt,
|
| - NSSItem *wrappedKey,
|
| - NSSCallback *uhhOpt
|
| -);
|
| -
|
| -/*
|
| - * NSSCryptoContext_DeriveSymmetricKey
|
| - *
|
| - */
|
| -
|
| -NSS_EXTERN NSSSymmetricKey *
|
| -NSSCryptoContext_DeriveSymmetricKey
|
| -(
|
| - NSSCryptoContext *cc,
|
| - NSSPublicKey *bk,
|
| - NSSAlgorithmAndParameters *apOpt,
|
| - NSSOID *target,
|
| - PRUint32 keySizeOpt, /* zero for best allowed */
|
| - NSSOperations operations,
|
| - NSSCallback *uhhOpt
|
| -);
|
| -
|
| -/*
|
| - * NSSCryptoContext_Encrypt
|
| - *
|
| - * Encrypt a single chunk of data with the distinguished public key
|
| - * of this crypto context.
|
| - */
|
| -
|
| -NSS_EXTERN NSSItem *
|
| -NSSCryptoContext_Encrypt
|
| -(
|
| - NSSCryptoContext *cc,
|
| - NSSAlgorithmAndParameters *apOpt,
|
| - NSSItem *data,
|
| - NSSCallback *uhhOpt,
|
| - NSSItem *rvOpt,
|
| - NSSArena *arenaOpt
|
| -);
|
| -
|
| -/*
|
| - * NSSCryptoContext_BeginEncrypt
|
| - *
|
| - */
|
| -
|
| -NSS_EXTERN PRStatus
|
| -NSSCryptoContext_BeginEncrypt
|
| -(
|
| - NSSCryptoContext *cc,
|
| - NSSAlgorithmAndParameters *apOpt,
|
| - NSSCallback *uhhOpt
|
| -);
|
| -
|
| -/*
|
| - * NSSCryptoContext_ContinueEncrypt
|
| - *
|
| - */
|
| -
|
| -NSS_EXTERN NSSItem *
|
| -NSSCryptoContext_ContinueEncrypt
|
| -(
|
| - NSSCryptoContext *cc,
|
| - NSSItem *data,
|
| - NSSItem *rvOpt,
|
| - NSSArena *arenaOpt
|
| -);
|
| -
|
| -/*
|
| - * NSSCryptoContext_FinishEncrypt
|
| - *
|
| - */
|
| -
|
| -NSS_EXTERN NSSItem *
|
| -NSSCryptoContext_FinishEncrypt
|
| -(
|
| - NSSCryptoContext *cc,
|
| - NSSItem *rvOpt,
|
| - NSSArena *arenaOpt
|
| -);
|
| -
|
| -/*
|
| - * NSSCryptoContext_Verify
|
| - *
|
| - */
|
| -
|
| -NSS_EXTERN PRStatus
|
| -NSSCryptoContext_Verify
|
| -(
|
| - NSSCryptoContext *cc,
|
| - NSSAlgorithmAndParameters *apOpt,
|
| - NSSItem *data,
|
| - NSSItem *signature,
|
| - NSSCallback *uhhOpt
|
| -);
|
| -
|
| -/*
|
| - * NSSCryptoContext_BeginVerify
|
| - *
|
| - */
|
| -
|
| -NSS_EXTERN PRStatus
|
| -NSSCryptoContext_BeginVerify
|
| -(
|
| - NSSCryptoContext *cc,
|
| - NSSAlgorithmAndParameters *apOpt,
|
| - NSSItem *signature,
|
| - NSSCallback *uhhOpt
|
| -);
|
| -
|
| -/*
|
| - * NSSCryptoContext_ContinueVerify
|
| - *
|
| - */
|
| -
|
| -NSS_EXTERN PRStatus
|
| -NSSCryptoContext_ContinueVerify
|
| -(
|
| - NSSCryptoContext *cc,
|
| - NSSItem *data
|
| -);
|
| -
|
| -/*
|
| - * NSSCryptoContext_FinishVerify
|
| - *
|
| - */
|
| -
|
| -NSS_EXTERN PRStatus
|
| -NSSCryptoContext_FinishVerify
|
| -(
|
| - NSSCryptoContext *cc
|
| -);
|
| -
|
| -/*
|
| - * NSSCryptoContext_VerifyRecover
|
| - *
|
| - */
|
| -
|
| -NSS_EXTERN NSSItem *
|
| -NSSCryptoContext_VerifyRecover
|
| -(
|
| - NSSCryptoContext *cc,
|
| - NSSAlgorithmAndParameters *apOpt,
|
| - NSSItem *signature,
|
| - NSSCallback *uhhOpt,
|
| - NSSItem *rvOpt,
|
| - NSSArena *arenaOpt
|
| -);
|
| -
|
| -/*
|
| - * NSSCryptoContext_BeginVerifyRecover
|
| - *
|
| - */
|
| -
|
| -NSS_EXTERN PRStatus
|
| -NSSCryptoContext_BeginVerifyRecover
|
| -(
|
| - NSSCryptoContext *cc,
|
| - NSSAlgorithmAndParameters *apOpt,
|
| - NSSCallback *uhhOpt
|
| -);
|
| -
|
| -/*
|
| - * NSSCryptoContext_ContinueVerifyRecover
|
| - *
|
| - */
|
| -
|
| -NSS_EXTERN NSSItem *
|
| -NSSCryptoContext_ContinueVerifyRecover
|
| -(
|
| - NSSCryptoContext *cc,
|
| - NSSItem *data,
|
| - NSSItem *rvOpt,
|
| - NSSArena *arenaOpt
|
| -);
|
| -
|
| -/*
|
| - * NSSCryptoContext_FinishVerifyRecover
|
| - *
|
| - */
|
| -
|
| -NSS_EXTERN NSSItem *
|
| -NSSCryptoContext_FinishVerifyRecover
|
| -(
|
| - NSSCryptoContext *cc,
|
| - NSSItem *rvOpt,
|
| - NSSArena *arenaOpt
|
| -);
|
| -
|
| -/*
|
| - * NSSCryptoContext_WrapSymmetricKey
|
| - *
|
| - */
|
| -
|
| -NSS_EXTERN NSSItem *
|
| -NSSCryptoContext_WrapSymmetricKey
|
| -(
|
| - NSSCryptoContext *cc,
|
| - NSSAlgorithmAndParameters *apOpt,
|
| - NSSSymmetricKey *keyToWrap,
|
| - NSSCallback *uhhOpt,
|
| - NSSItem *rvOpt,
|
| - NSSArena *arenaOpt
|
| -);
|
| -
|
| -/*
|
| - * NSSCryptoContext_Digest
|
| - *
|
| - * Digest a single chunk of data with the distinguished digest key
|
| - * of this crypto context.
|
| - */
|
| -
|
| -NSS_EXTERN NSSItem *
|
| -NSSCryptoContext_Digest
|
| -(
|
| - NSSCryptoContext *cc,
|
| - NSSAlgorithmAndParameters *apOpt,
|
| - NSSItem *data,
|
| - NSSCallback *uhhOpt,
|
| - NSSItem *rvOpt,
|
| - NSSArena *arenaOpt
|
| -);
|
| -
|
| -/*
|
| - * NSSCryptoContext_BeginDigest
|
| - *
|
| - */
|
| -
|
| -NSS_EXTERN PRStatus
|
| -NSSCryptoContext_BeginDigest
|
| -(
|
| - NSSCryptoContext *cc,
|
| - NSSAlgorithmAndParameters *apOpt,
|
| - NSSCallback *uhhOpt
|
| -);
|
| -
|
| -/*
|
| - * NSSCryptoContext_ContinueDigest
|
| - *
|
| - */
|
| -
|
| -NSS_EXTERN PRStatus
|
| -NSSCryptoContext_ContinueDigest
|
| -(
|
| - NSSCryptoContext *cc,
|
| - NSSAlgorithmAndParameters *apOpt,
|
| - NSSItem *item
|
| -);
|
| -
|
| -/*
|
| - * NSSCryptoContext_FinishDigest
|
| - *
|
| - */
|
| -
|
| -NSS_EXTERN NSSItem *
|
| -NSSCryptoContext_FinishDigest
|
| -(
|
| - NSSCryptoContext *cc,
|
| - NSSItem *rvOpt,
|
| - NSSArena *arenaOpt
|
| -);
|
| -
|
| -/*
|
| - * tbd: Combination ops
|
| - */
|
| -
|
| -/*
|
| - * NSSCryptoContext_Clone
|
| - *
|
| - */
|
| -
|
| -NSS_EXTERN NSSCryptoContext *
|
| -NSSCryptoContext_Clone
|
| -(
|
| - NSSCryptoContext *cc
|
| -);
|
| -
|
| -/*
|
| - * NSSCryptoContext_Save
|
| - * NSSCryptoContext_Restore
|
| - *
|
| - * We need to be able to save and restore the state of contexts.
|
| - * Perhaps a mark-and-release mechanism would be better?
|
| - */
|
| -
|
| -/*
|
| - * ..._SignTBSCertificate
|
| - *
|
| - * This requires feedback from the cert server team.
|
| - */
|
| -
|
| -/*
|
| - * PRBool NSSCertificate_GetIsTrustedFor{xxx}(NSSCertificate *c);
|
| - * PRStatus NSSCertificate_SetIsTrustedFor{xxx}(NSSCertificate *c, PRBool trusted);
|
| - *
|
| - * These will be helper functions which get the trust object for a cert,
|
| - * and then call the corresponding function(s) on it.
|
| - *
|
| - * PKIX trust objects will have methods to manipulate the low-level trust
|
| - * bits (which are based on key usage and extended key usage), and also the
|
| - * conceptual high-level usages (e.g. ssl client auth, email encryption, etc.)
|
| - *
|
| - * Other types of trust objects (if any) might have different low-level
|
| - * representations, but hopefully high-level concepts would map.
|
| - *
|
| - * Only these high-level general routines would be promoted to the
|
| - * general certificate level here. Hence the {xxx} above would be things
|
| - * like "EmailSigning."
|
| - *
|
| - *
|
| - * NSSPKIXTrust *NSSCertificate_GetPKIXTrustObject(NSSCertificate *c);
|
| - * PRStatus NSSCertificate_SetPKIXTrustObject(NSSCertificate *c, NSPKIXTrust *t);
|
| - *
|
| - * I want to hold off on any general trust object until we've investigated
|
| - * other models more thoroughly.
|
| - */
|
| -
|
| -PR_END_EXTERN_C
|
| -
|
| -#endif /* NSSPKI_H */
|
|
|