+++ /dev/null
-/*
- * bsafeUtils.h - common routines for CDSA/BSAFE compatibility testing
- */
-
-/*
- * Clients of this module do not need to know about or see anything from the
- * BSAFE headers.
- */
-#ifndef _BSAFE_UTILS_H_
-#define _BSAFE_UTILS_H_
-#include <Security/cssmtype.h>
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/* Actually the same as a B_KEY_OBJ, but our callers don't need to know that */
-typedef void *BU_KEY;
-
-/*
- * Create a symmetric key.
- */
-CSSM_RETURN buGenSymKey(
- uint32 keySizeInBits,
- const CSSM_DATA *keyData,
- BU_KEY *key); // RETURNED
-
-/*
- * Create asymmetric key pair.
- * FIXME - additional params (e.g. DSA params, RSA exponent)?
- */
-CSSM_RETURN buGenKeyPair(
- uint32 keySizeInBits,
- CSSM_ALGORITHMS keyAlg, // CSSM_ALGID_{RSA,DSA}
- BU_KEY *pubKey, // RETURNED
- BU_KEY *privKey); // RETURNED
-
-/*
- * Free a key created in buGenSymKey or buGenKeyPair
- */
-CSSM_RETURN buFreeKey(
- BU_KEY key);
-
-/*
- * encrypt/decrypt
- */
-CSSM_RETURN buEncryptDecrypt(
- BU_KEY key,
- CSSM_BOOL forEncrypt,
- CSSM_ALGORITHMS encrAlg,
- CSSM_ENCRYPT_MODE mode, // CSSM_ALGMODE_CBC, etc.
- const CSSM_DATA *iv, //ĂŠoptional per mode
- uint32 effectiveKeyBits, // optional per key alg (actually just RC2)
- // for RSA, key size in bits
- uint32 rounds, // optional, RC5 only
- const CSSM_DATA *inData,
- CSSM_DATA_PTR outData); // mallocd and RETURNED
-
-/*
- * Sign/verify
- */
-CSSM_RETURN buSign(
- BU_KEY key,
- CSSM_ALGORITHMS sigAlg,
- const CSSM_DATA *ptext,
- uint32 keySizeInBits, // to set up sig
- CSSM_DATA_PTR sig); // mallocd and RETURNED
-
-CSSM_RETURN buVerify(
- BU_KEY key,
- CSSM_ALGORITHMS sigAlg,
- const CSSM_DATA *ptext,
- const CSSM_DATA *sig); // mallocd and RETURNED
-
-/*
- * generate MAC either one update (updateSizes == NULL) or
- * specified set of update sizes.
- */
-CSSM_RETURN buGenMac(
- BU_KEY key, // any key, any size
- CSSM_ALGORITHMS macAlg, // only CSSM_ALGID_SHA1HMAC for now
- const CSSM_DATA *ptext,
- unsigned *updateSizes, // NULL --> random updates
- // else null-terminated list of sizes
- CSSM_DATA_PTR mac); // mallocd and RETURNED
-
-/* generate digest */
-CSSM_RETURN buGenDigest(
- CSSM_ALGORITHMS macAlg, // CSSM_ALGID_SHA1, etc. */
- const CSSM_DATA *ptext,
- CSSM_DATA_PTR digest); // mallocd and RETURNED
-
-/*
- * Convert between BSAFE and CDSA private keys
- */
-CSSM_RETURN buBsafePrivKeyToCdsa(
- CSSM_ALGORITHMS keyAlg,
- uint32 keySizeInBits,
- BU_KEY bsafePrivKey,
- CSSM_KEY_PTR cdsaPrivKey);
-CSSM_RETURN buCdsaPrivKeyToBsafe(
- CSSM_KEY_PTR cdsaPrivKey,
- BU_KEY *bsafePrivKey);
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _BSAFE_UTILS_H_ */