]> git.saurik.com Git - apple/security.git/blobdiff - sec/securityd/keystore.h
Security-55471.tar.gz
[apple/security.git] / sec / securityd / keystore.h
diff --git a/sec/securityd/keystore.h b/sec/securityd/keystore.h
deleted file mode 100644 (file)
index 90dd9ba..0000000
+++ /dev/null
@@ -1,160 +0,0 @@
-/*
- * Copyright (c) 2010 Apple Inc. All Rights Reserved.
- *
- * @APPLE_LICENSE_HEADER_START@
- *
- * This file contains Original Code and/or Modifications of Original Code
- * as defined in and that are subject to the Apple Public Source License
- * Version 2.0 (the 'License'). You may not use this file except in
- * compliance with the License. Please obtain a copy of the License at
- * http://www.opensource.apple.com/apsl/ and read it before using this
- * file.
- *
- * The 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.
- *
- * @APPLE_LICENSE_HEADER_END@
- */
-
-/*!
-    @header keystore
-    The functions provided in keystore.h provide an interface to
-    the AppleKeyStore kext.
-*/
-
-#ifndef _SECURITYD_KEYSTORE_H_
-#define _SECURITYD_KEYSTORE_H_
-
-#include <IOKit/IOKitLib.h>
-
-#ifdef __cplusplus
-/*
- * ks objects are NOT C++ objects. Nevertheless, we can at least keep C++
- * aware of type compatibility.
- */
-typedef struct ks_object_s {
-private:
-       ks_object_s();
-       ~ks_object_s();
-       ks_object_s(const ks_object_s &);
-       void operator=(const ks_object_s &);
-} *ks_object_t;
-#else
-typedef union {
-       struct ks_object_s *_kso;
-       struct ks_key_s *_ksk;
-       struct ks_buffer_s *_ksb;
-       struct ks_stream_s *_kss;
-} ks_object_t __attribute__((transparent_union));
-#endif
-
-#ifdef __cplusplus
-#define KS_DECL(name) typedef struct name##_s : public ks_object_s {} *name##_t;
-#else
-/*! @parseOnly */
-#define KS_DECL(name) typedef struct name##_s *name##_t;
-#endif
-
-KS_DECL(ks_buffer);
-KS_DECL(ks_key);
-KS_DECL(ks_stream);
-
-#if defined(__cplusplus)
-extern "C" {
-#endif
-
-enum {
-    KS_KEY_SIZE_128 = 16,
-    KS_KEY_SIZE_192 = 24,
-    KS_KEY_SIZE_256 = 32,
-};
-
-ks_key_t ks_generate_key(long size);
-void ks_encrypt(ks_key_t key, ks_object_t data_in, ks_object_t data_out);
-void ks_decrypt(ks_key_t key, ks_object_t data_in, ks_object_t data_out);
-
-ks_buffer_t ks_buffer(size_t capacity);
-size_t ks_get_length(ks_buffer_t buffer);
-void ks_set_length(ks_buffer_t buffer, size_t length);
-uint8_t *ks_bytes(ks_buffer_t buffer);
-ks_buffer_t ks_append(size_t capacity);
-
-
-/* TODO: Move to iokitutils or something since this is generic. */
-io_connect_t ks_connect_to_service(const char *className);
-
-io_connect_t ks_get_connect(void);
-
-
-/*!
-    @function ks_available
-    @abstract Check if the AppleKeyStore.kext is available, you must call
-    this function before using any other library function.
-    @result true, unless for some reason ks isn't available then false.
- */
-bool ks_available(void);
-
-/*!
-    @function ks_free
-    @abstract free something allocated by a ks_ function.
-    @param ks_object buffer allocated by the
- */
-void ks_free(ks_object_t ks_object);
-
-/*!
-    @function ks_unwrap
-    @abstract unwrap a key using the specified keyclass.
-    @param keybag the keybag handle containing the class key which will be
-    doing the wrapping.
-    @param keyclass handle for the wrapping key.
-    @param bufferSize number of bytes available in array pointed to by buffer
-    @param buffer pointer to a buffer.
-    @param wrappedKeySize (output) size of the wrappedKey if it had been
-    written to buffer.
-    @param error (optional) pointer to a CFErrorRef who's value will only be
-    changed if it is NULL, in which case the caller is responsible for
-    calling CFRelease on it.
-    @result Returns pointer to the wrappedKey, or
-    NULL if an error occured. Pass in a pointer to a CFErrorRef who's value
-    is NULL to obtain an error object.
-    @discussion If and only if NULL is passed for the buffer parameter, this
-    function will allocate a buffer to which it writes the wrappedKey.
- */
-uint8_t *ks_unwrap(uint64_t keybag, uint64_t keyclass,
-    const uint8_t *wrappedKey, size_t wrappedKeySize,
-    uint8_t *buffer, size_t bufferSize, size_t *keySize);
-
-/*!
-    @function ks_wrap
-    @abstract wrap a 128 bit (16 byte), 192 bit (24 byte) or 256 bit (32 byte)
-    key using the specified keyclass.
-    @param keybag the keybag handle containing the class key which will be
-    doing the wrapping.
-    @param keyclass handle for the wrapping key.
-    @param bufferSize number of bytes available in array pointed to by buffer
-    @param buffer pointer to a buffer.
-    @param wrappedKeySize (output) size of the wrappedKey if it had been
-    written to buffer.
-    @param error (optional) pointer to a CFErrorRef who's value will only be
-    changed if it is NULL, in which case the caller is responsible for
-    calling CFRelease on it.
-    @result Returns pointer to the wrappedKey, or
-    NULL if an error occured. Pass in a pointer to a CFErrorRef who's value
-    is NULL to obtain an error object.
-    @discussion If and only if NULL is passed for the buffer parameter, this
-    function will allocate a buffer to which it writes the wrappedKey.
- */
-uint8_t *ks_wrap(uint64_t keybag, uint64_t keyclass,
-    const uint8_t *key, size_t keyByteSize,
-    uint8_t *buffer, size_t bufferSize, size_t *wrappedKeySize);
-
-#if defined(__cplusplus)
-}
-#endif
-
-#endif /* _SECURITYD_KEYSTORE_H_ */