/ OSX / libsecurity_transform / lib / SecEncryptTransform.cpp
SecEncryptTransform.cpp
 1  /*
 2   * Copyright (c) 2010-2011 Apple Inc. All Rights Reserved.
 3   * 
 4   * @APPLE_LICENSE_HEADER_START@
 5   * 
 6   * This file contains Original Code and/or Modifications of Original Code
 7   * as defined in and that are subject to the Apple Public Source License
 8   * Version 2.0 (the 'License'). You may not use this file except in
 9   * compliance with the License. Please obtain a copy of the License at
10   * http://www.opensource.apple.com/apsl/ and read it before using this
11   * file.
12   * 
13   * The Original Code and all software distributed under the License are
14   * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
15   * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
16   * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
17   * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
18   * Please see the License for the specific language governing rights and
19   * limitations under the License.
20   * 
21   * @APPLE_LICENSE_HEADER_END@
22   */
23  
24  #include "SecEncryptTransform.h"
25  #include "SecTransformInternal.h"
26  #include "EncryptTransform.h"
27  #include <utilities/SecCFRelease.h>
28  
29  /* --------------------------------------------------------------------------
30   Create the declared CFStringRefs
31   -------------------------------------------------------------------------- */
32  
33  const CFStringRef __nonnull kSecPaddingNoneKey = CFSTR("SecPaddingNoneKey");
34  const CFStringRef __nonnull kSecPaddingPKCS1Key = CFSTR("SecPaddingPKCS1Key");
35  const CFStringRef __nonnull kSecPaddingPKCS5Key = CFSTR("SecPaddingPKCS5Key");
36  const CFStringRef __nonnull kSecPaddingPKCS7Key = CFSTR("SecPaddingPKCS7Key");
37  const CFStringRef __nonnull kSecPaddingOAEPKey = CFSTR("OAEPPadding");
38  const CFStringRef __nonnull kSecOAEPMGF1DigestAlgorithmAttributeName = CFSTR("OAEPMGF1DigestAlgo");
39  
40  const CFStringRef __nonnull kSecModeNoneKey = CFSTR("SecModeNoneKey");
41  const CFStringRef __nonnull kSecModeECBKey = CFSTR("SecModeECBKey");
42  const CFStringRef __nonnull kSecModeCBCKey = CFSTR("SecModeCBCKey");
43  const CFStringRef __nonnull kSecModeCFBKey = CFSTR("SecModeCFBKey");
44  const CFStringRef __nonnull kSecModeOFBKey = CFSTR("SecModeOFBKey");
45  
46  const CFStringRef __nonnull kSecOAEPMessageLengthAttributeName = CFSTR("OAEPMessageLength");
47  const CFStringRef __nonnull kSecOAEPEncodingParametersAttributeName = CFSTR("OAEPEncodingParameters");
48  
49  const CFStringRef __nonnull kSecEncryptKey = CFSTR("SecEncryptKey");
50  const CFStringRef __nonnull kSecPaddingKey = CFSTR("SecPaddingKey");
51  const CFStringRef __nonnull kSecIVKey = CFSTR("SecIVKey");
52  const CFStringRef __nonnull kSecEncryptionMode = CFSTR("SecEncryptionMode");
53  
54  
55  SecTransformRef SecEncryptTransformCreate(SecKeyRef keyRef, CFErrorRef* error)
56  {
57  	SecTransformRef etRef = EncryptTransform::Make();
58  	EncryptTransform* et = (EncryptTransform*) CoreFoundationHolder::ObjectFromCFType(etRef);
59  	if (et->InitializeObject(keyRef, error))
60  	{
61  		return etRef;
62  	}
63  	else
64  	{
65  		
66  		CFReleaseNull(etRef);
67  		return NULL;
68  	}
69  }
70  
71  
72  CFTypeID SecEncryptTransformGetTypeID()
73  {
74  	return Transform::GetCFTypeID();
75  }
76  
77  SecTransformRef SecDecryptTransformCreate(SecKeyRef keyRef, CFErrorRef* error)
78  {
79  	
80  	SecTransformRef dtRef = DecryptTransform::Make();
81  	DecryptTransform* dt = (DecryptTransform*) CoreFoundationHolder::ObjectFromCFType(dtRef);
82  	if (dt->InitializeObject(keyRef, error))
83  	{
84  		return dtRef;
85  	}
86  	else
87  	{
88  		CFReleaseNull(dtRef);
89  		return NULL;
90  	}
91  }
92  
93  CFTypeID SecDecryptTransformGetTypeID()
94  {
95  	return Transform::GetCFTypeID();
96  }