]> git.saurik.com Git - apple/securityd.git/blob - src/key.cpp
c418e36c004e8ac49cd116a8b3922af41cb51acd
[apple/securityd.git] / src / key.cpp
1 /*
2 * Copyright (c) 2000-2004 Apple Computer, Inc. All Rights Reserved.
3 *
4 * @APPLE_LICENSE_HEADER_START@
5 *
6 * Copyright (c) 1999-2003 Apple Computer, Inc. All Rights Reserved.
7 *
8 * This file contains Original Code and/or Modifications of Original Code
9 * as defined in and that are subject to the Apple Public Source License
10 * Version 2.0 (the 'License'). You may not use this file except in
11 * compliance with the License. Please obtain a copy of the License at
12 * http://www.opensource.apple.com/apsl/ and read it before using this
13 * file.
14 *
15 * The Original Code and all software distributed under the License are
16 * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
17 * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
18 * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
19 * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
20 * Please see the License for the specific language governing rights and
21 * limitations under the License.
22 *
23 * @APPLE_LICENSE_HEADER_END@
24 */
25
26
27 //
28 // key - representation of SecurityServer key objects
29 //
30 #include "key.h"
31 #include "server.h"
32 #include "database.h"
33 #include <security_cdsa_utilities/acl_any.h>
34
35
36 Key::Key()
37 : SecurityServerAcl(keyAcl, Allocator::standard())
38 {
39 }
40
41
42 Database &Key::database() const
43 {
44 return referent<Database>();
45 }
46
47
48 //
49 // Form a KeySpec with checking and masking
50 //
51 Key::KeySpec::KeySpec(uint32 usage, uint32 attrs)
52 : CssmClient::KeySpec(usage, (attrs & ~managedAttributes) | forcedAttributes)
53 {
54 if (attrs & generatedAttributes)
55 CssmError::throwMe(CSSMERR_CSP_INVALID_KEYATTR_MASK);
56 }
57
58 Key::KeySpec::KeySpec(uint32 usage, uint32 attrs, const CssmData &label)
59 : CssmClient::KeySpec(usage, (attrs & ~managedAttributes) | forcedAttributes, label)
60 {
61 if (attrs & generatedAttributes)
62 CssmError::throwMe(CSSMERR_CSP_INVALID_KEYATTR_MASK);
63 }