]>
git.saurik.com Git - apple/security.git/blob - SecurityServer/Authorization/AuthorizationWalkers.h
2 * Copyright (c) 2000-2001 Apple Computer, Inc. All Rights Reserved.
4 * The contents of this file constitute Original Code as defined in and are
5 * subject to the Apple Public Source License Version 1.2 (the 'License').
6 * You may not use this file except in compliance with the License. Please obtain
7 * a copy of the License at http://www.apple.com/publicsource and read it before
10 * This Original Code and all software distributed under the License are
11 * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESS
12 * OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, INCLUDING WITHOUT
13 * LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
14 * PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. Please see the License for the
15 * specific language governing rights and limitations under the License.
20 * AuthorizationWalkers.h
23 * Copyright: (c) 2000 by Apple Computer, Inc., all rights reserved
27 #if !defined(__AuthorizationWalkers__)
28 #define __AuthorizationWalkers__ 1
30 #include <Security/Authorization.h>
31 #include <Security/AuthorizationPlugin.h>
32 #include <Security/walkers.h>
33 #include <Security/cssmwalkers.h> // char * walker
41 template <class Action
>
42 void walk(Action
&operate
, AuthorizationItem
&item
)
44 walk(operate
, item
.name
);
45 operate(item
.value
, item
.valueLength
);
49 template <class Action
>
50 AuthorizationItemSet
*walk(Action
&operate
, AuthorizationItemSet
* &itemSet
)
53 operate(itemSet
->items
, itemSet
->count
* sizeof(AuthorizationItem
));
54 for (uint32 n
= 0; n
< itemSet
->count
; n
++)
55 walk(operate
, itemSet
->items
[n
]);
59 template <class Action
>
60 void walk(Action
&operate
, AuthorizationValue
&authvalue
)
62 operate(authvalue
.data
, authvalue
.length
);
65 template <class Action
>
66 AuthorizationValueVector
*walk(Action
&operate
, AuthorizationValueVector
* &valueVector
)
69 operate(valueVector
->values
, valueVector
->count
* sizeof(AuthorizationValue
));
70 for (uint32 n
= 0; n
< valueVector
->count
; n
++)
71 walk(operate
, valueVector
->values
[n
]);
77 } // end namespace DataWalkers
79 } // end namespace Security
81 #endif /* ! __AuthorizationWalkers__ */