22 #ifndef NDN_OSX_PRIVATEKEY_STORAGE_H
23 #define NDN_OSX_PRIVATEKEY_STORAGE_H
26 #include <ndn-cpp/ndn-cpp-config.h>
27 #if NDN_CPP_HAVE_OSX_SECURITY
29 #include "../../common.hpp"
30 #include "private-key-storage.hpp"
32 #include <CoreFoundation/CoreFoundation.h>
33 #include <Security/Security.h>
34 #include <CoreServices/CoreServices.h>
61 CFReleaser(
const T& typeRef)
66 CFReleaser(
const CFReleaser& inReleaser)
69 retain(inReleaser.m_typeRef);
73 operator=(
const T& typeRef)
75 if (typeRef != m_typeRef) {
83 operator=(
const CFReleaser& inReleaser)
85 retain(inReleaser.m_typeRef);
123 retain(
const T& typeRef)
134 if (m_typeRef != 0) {
135 CFRelease(m_typeRef);
144 class OSXPrivateKeyStorage :
public PrivateKeyStorage {
149 OSXPrivateKeyStorage() {}
155 ~OSXPrivateKeyStorage();
163 generateKeyPair(
const Name& keyName,
const KeyParams& params);
170 deleteKeyPair(
const Name& keyName);
177 virtual ptr_lib::shared_ptr<PublicKey>
178 getPublicKey(
const Name& keyName);
189 sign(
const uint8_t *data,
size_t dataLength,
const Name& keyName, DigestAlgorithm digestAlgorithm = DIGEST_ALGORITHM_SHA256);
200 decrypt(
const Name& keyName,
const uint8_t* data,
size_t dataLength,
bool isSymmetric =
false);
211 encrypt(
const Name& keyName,
const uint8_t* data,
size_t dataLength,
bool isSymmetric =
false);
219 generateKey(
const Name& keyName,
const KeyParams& params);
228 doesKeyExist(
const Name& keyName, KeyClass keyClass);
239 setACL(
const Name & keyName, KeyClass keyClass,
int acl,
const std::string & appPath);
249 toInternalKeyName(
const Name & keyName, KeyClass keyClass);
258 CFReleaser<SecKeychainItemRef>
259 getKey(
const Name & keyName, KeyClass keyClass);
267 getSymmetricKeyType(KeyType keyType);
275 getAsymmetricKeyType(KeyType keyType);
283 getKeyClass(KeyClass keyClass);
291 getDigestAlgorithm(DigestAlgorithm digestAlgorithm);
299 getDigestSize(DigestAlgorithm digestAlgo);
304 #endif // NDN_CPP_HAVE_OSX_SECURITY
Copyright (C) 2013-2016 Regents of the University of California.
Definition: common.hpp:35