+++ /dev/null
-/*
- * Copyright (c) 2003,2011,2014 Apple Inc. All Rights Reserved.
- *
- * The contents of this file constitute Original Code as defined in and are
- * subject to the Apple Public Source License Version 1.2 (the 'License').
- * You may not use this file except in compliance with the License. Please obtain
- * a copy of the License at http://www.apple.com/publicsource and read it before
- * using this file.
- *
- * This Original Code and all software distributed under the License are
- * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESS
- * OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, INCLUDING WITHOUT
- * LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
- * PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. Please see the License for the
- * specific language governing rights and limitations under the License.
- */
-
-
-/*
- * opensslAsn1.h - ANS1 encode/decode of openssl object, libssnasn1 version
- */
-
-#ifndef _OPENSSL_ASN1_H_
-#define _OPENSSL_ASN1_H_
-
-
-#include <openssl/rsa.h>
-#include <openssl/dsa.h>
-#include <openssl/dh.h>
-#include <Security/osKeyTemplates.h>
-#include <Security/cssmtype.h>
-#include <security_cdsa_utilities/cssmdata.h>
-#include <security_asn1/SecNssCoder.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/* CSSM_DATA --> BIGNUM */
-BIGNUM *cssmDataToBn(
- const CSSM_DATA &cdata);
-
-/* BIGNUM --> CSSM_DATA, mallocing from a SecNssCoder's PL_ArenaPool */
-void bnToCssmData(
- const BIGNUM *bn,
- CSSM_DATA &cdata,
- SecNssCoder &coder);
-
-/* CSSM_DATA --> unsigned int */
-unsigned cssmDataToInt(
- const CSSM_DATA &cdata);
-
-/* unsigned int --> CSSM_DATA, mallocing from an SecNssCoder */
-void intToCssmData(
- unsigned num,
- CSSM_DATA &cdata,
- SecNssCoder &coder);
-
-/*
- * DER encode/decode RSA keys in various formats.
- */
-CSSM_RETURN RSAPublicKeyDecode(
- RSA *openKey,
- CSSM_KEYBLOB_FORMAT format,
- void *p,
- size_t length);
-CSSM_RETURN RSAPublicKeyEncode(
- RSA *openKey,
- CSSM_KEYBLOB_FORMAT format,
- const CssmData &descData,
- CssmOwnedData &encodedKey);
-CSSM_RETURN RSAPrivateKeyDecode(
- RSA *openKey,
- CSSM_KEYBLOB_FORMAT format,
- void *p,
- size_t length);
-CSSM_RETURN RSAPrivateKeyEncode(
- RSA *openKey,
- CSSM_KEYBLOB_FORMAT format,
- const CssmData &descData,
- CssmOwnedData &encodedKey);
-CSSM_RETURN RSAOAEPPublicKeyDecode(
- RSA *openKey,
- void *p,
- size_t length,
- /* mallocd and returned label */
- CSSM_DATA *label);
-CSSM_RETURN RSAOAEPPublicKeyEncode(
- RSA *openKey,
- const CSSM_DATA *label,
- CssmOwnedData &encodedKey);
-CSSM_RETURN RSAOAEPPrivateKeyDecode(
- RSA *openKey,
- void *p,
- size_t length,
- /* mallocd and returned label */
- CSSM_DATA *label);
-CSSM_RETURN RSAOAEPPrivateKeyEncode(
- RSA *openKey,
- const CSSM_DATA *label,
- CssmOwnedData &encodedKey);
-
-CSSM_RETURN generateDigestInfo(
- const void *messageDigest,
- size_t digestLen,
- CSSM_ALGORITHMS digestAlg, // CSSM_ALGID_SHA1, etc.
- CssmOwnedData &encodedInfo,
- size_t maxEncodedSize);
-CSSM_RETURN DSAPublicKeyDecode(
- DSA *openKey,
- CSSM_KEYBLOB_FORMAT format,
- void *p,
- size_t length);
-CSSM_RETURN DSAPublicKeyEncode(
- DSA *openKey,
- CSSM_KEYBLOB_FORMAT format,
- const CssmData &descData,
- CssmOwnedData &encodedKey);
-CSSM_RETURN DSAPrivateKeyDecode(
- DSA *openKey,
- CSSM_KEYBLOB_FORMAT format,
- void *p,
- size_t length);
-CSSM_RETURN DSAPrivateKeyEncode(
- DSA *openKey,
- CSSM_KEYBLOB_FORMAT format,
- const CssmData &descData,
- CssmOwnedData &encodedKey);
-
-CSSM_RETURN DSASigEncode(
- DSA_SIG *openSig,
- CssmOwnedData &encodedSig);
-CSSM_RETURN DSASigDecode(
- DSA_SIG *openSig,
- const void *p,
- unsigned length);
-
-CSSM_RETURN DSAEncodeAlgParams(
- NSS_DSAAlgParams &algParams,
- CssmOwnedData &encodedParams);
-CSSM_RETURN DSADecodeAlgParams(
- NSS_DSAAlgParams &algParams,
- const void *p,
- unsigned len,
- SecNssCoder &coder);
-
-CSSM_RETURN DHPrivateKeyDecode(
- DH *openKey,
- CSSM_KEYBLOB_FORMAT format,
- unsigned char *p,
- unsigned length);
-CSSM_RETURN DHPrivateKeyEncode(
- DH *openKey,
- CSSM_KEYBLOB_FORMAT format,
- CssmOwnedData &encodedKey);
-CSSM_RETURN DHPublicKeyDecode(
- DH *openKey,
- CSSM_KEYBLOB_FORMAT format,
- unsigned char *p,
- unsigned length);
-CSSM_RETURN DHPublicKeyEncode(
- DH *openKey,
- CSSM_KEYBLOB_FORMAT format,
- CssmOwnedData &encodedKey);
-CSSM_RETURN DHParamBlockDecode(
- const CSSM_DATA &encParam,
- NSS_DHParameterBlock ¶mBlock,
- SecNssCoder &coder);
-
-CSSM_RETURN generateDigestInfo(
- const void *msgDigest,
- size_t digestLen,
- CSSM_ALGORITHMS digestAlg, // CSSM_ALGID_SHA1, etc.
- CssmOwnedData &encodedInfo,
- size_t maxEncodedSize);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _OPENSSL_ASN1_H_ */