X-Git-Url: https://git.saurik.com/apple/security.git/blobdiff_plain/80e2389990082500d76eb566d4946be3e786c3ef..d8f41ccd20de16f8ebe2ccc84d47bf1cb2b26bbb:/libsecurity_apple_csp/lib/DH_keys.h?ds=inline diff --git a/libsecurity_apple_csp/lib/DH_keys.h b/libsecurity_apple_csp/lib/DH_keys.h deleted file mode 100644 index c75d403f..00000000 --- a/libsecurity_apple_csp/lib/DH_keys.h +++ /dev/null @@ -1,149 +0,0 @@ -/* - * Copyright (c) 2000-2002 Apple Computer, 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. - */ - - -/* - * DH_keys.h - Diffie-Hellman key pair support - */ - -#ifndef _DH_KEYS_H_ -#define _DH_KEYS_H_ - -#include -#include -#include "AppleCSPKeys.h" -#include -#include -#include -#include -#include -#include - -#define DH_PUB_KEY_FORMAT CSSM_KEYBLOB_RAW_FORMAT_PKCS3 -#define DH_PRIV_KEY_FORMAT CSSM_KEYBLOB_RAW_FORMAT_PKCS3 - -#define DH_MIN_KEY_SIZE 512 /* FIXME */ -#define DH_MAX_KEY_SIZE 2048 - -#define cspDhDebug(args...) secdebug("dhDebug", ## args) - -/* - * Diffie-Hellman version of a BinaryKey. - */ -class DHBinaryKey : public BinaryKey { -public: - DHBinaryKey(DH *dhKey = NULL); - ~DHBinaryKey(); - void generateKeyBlob( - Allocator &allocator, - CssmData &blob, - CSSM_KEYBLOB_FORMAT &format, - AppleCSPSession &session, - const CssmKey *paramKey, /* optional, unused here */ - CSSM_KEYATTR_FLAGS &attrFlags); /* IN/OUT */ - - /* - * This may contain a fully-capable private key, or a public - * key with as little as the pub_key field set. - */ - DH *mDhKey; -}; - -class DHKeyPairGenContext : - public AppleCSPContext, private AppleKeyPairGenContext { -public: - DHKeyPairGenContext( - AppleCSPSession &session, - const Context &) : - AppleCSPContext(session), - mGenAttrs(NULL) {} - - ~DHKeyPairGenContext() { freeGenAttrs(); } - - // no init functionality, but we need to implement it - void init( - const Context &, - bool) { } - - // this one is specified in, and called from, CSPFullPluginSession - void generate( - const Context &context, - CssmKey &pubKey, - CssmKey &privKey); - - // this one is specified in, and called from, AppleKeyPairGenContext - void generate( - const Context &context, - BinaryKey &pubBinKey, - BinaryKey &privBinKey, - uint32 &keySize); - - // specified in, and called from, CSPFullPluginSessionÊ- generate parameters - void generate( - const Context &context, - uint32 bitSize, - CssmData ¶ms, - uint32 &attrCount, - Context::Attr * &attrs); - - /* - * Necessary to handle and deflect "context changed" notification which occurs - * after the strange return from "generate parameters", when the plugin adds - * the "returned" values to the Context. - */ - bool changed(const Context &context) { return true; } - - void dhGenParams( - uint32 keySizeInBits, - unsigned g, // probably should be BIGNUM - int privValueLength, // optional - NSS_DHParameter &algParams, - SecNssCoder &coder); // for temp contents of algParams - -private: - /* gross hack to store attributes "returned" from GenParams */ - Context::Attr *mGenAttrs; - void freeGenAttrs(); -}; /* DHKeyPairGenContext */ - -/* - * CSPKeyInfoProvider for Diffie-Hellman keys - */ -class DHKeyInfoProvider : public CSPKeyInfoProvider -{ -private: - DHKeyInfoProvider( - const CssmKey &cssmKey, - AppleCSPSession &session); -public: - static CSPKeyInfoProvider *provider( - const CssmKey &cssmKey, - AppleCSPSession &session); - - ~DHKeyInfoProvider() { } - void CssmKeyToBinary( - CssmKey *paramKey, // optional, ignored here - CSSM_KEYATTR_FLAGS &attrFlags, // IN/OUT - BinaryKey **binKey); // RETURNED - void QueryKeySizeInBits( - CSSM_KEY_SIZE &keySize); // RETURNED - bool getHashableBlob( - Allocator &allocator, - CssmData &hashBlob); -}; - -#endif /* _DH_KEYS_H_ */