OpenSSL
1.0.1c
Main Page
Classes
Files
File List
File Members
All
Classes
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Macros
crypto
krb5
krb5_asn.h
Go to the documentation of this file.
1
/* krb5_asn.h */
2
/* Written by Vern Staats <
[email protected]
> for the OpenSSL project,
3
** using ocsp/{*.h,*asn*.c} as a starting point
4
*/
5
6
/* ====================================================================
7
* Copyright (c) 1998-2000 The OpenSSL Project. All rights reserved.
8
*
9
* Redistribution and use in source and binary forms, with or without
10
* modification, are permitted provided that the following conditions
11
* are met:
12
*
13
* 1. Redistributions of source code must retain the above copyright
14
* notice, this list of conditions and the following disclaimer.
15
*
16
* 2. Redistributions in binary form must reproduce the above copyright
17
* notice, this list of conditions and the following disclaimer in
18
* the documentation and/or other materials provided with the
19
* distribution.
20
*
21
* 3. All advertising materials mentioning features or use of this
22
* software must display the following acknowledgment:
23
* "This product includes software developed by the OpenSSL Project
24
* for use in the OpenSSL Toolkit. (http://www.openssl.org/)"
25
*
26
* 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to
27
* endorse or promote products derived from this software without
28
* prior written permission. For written permission, please contact
29
*
[email protected]
.
30
*
31
* 5. Products derived from this software may not be called "OpenSSL"
32
* nor may "OpenSSL" appear in their names without prior written
33
* permission of the OpenSSL Project.
34
*
35
* 6. Redistributions of any form whatsoever must retain the following
36
* acknowledgment:
37
* "This product includes software developed by the OpenSSL Project
38
* for use in the OpenSSL Toolkit (http://www.openssl.org/)"
39
*
40
* THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY
41
* EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
42
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
43
* PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR
44
* ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
45
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
46
* NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
47
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
48
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
49
* STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
50
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
51
* OF THE POSSIBILITY OF SUCH DAMAGE.
52
* ====================================================================
53
*
54
* This product includes cryptographic software written by Eric Young
55
* (
[email protected]
). This product includes software written by Tim
56
* Hudson (
[email protected]
).
57
*
58
*/
59
60
#ifndef HEADER_KRB5_ASN_H
61
#define HEADER_KRB5_ASN_H
62
63
/*
64
#include <krb5.h>
65
*/
66
#include <
openssl/safestack.h
>
67
68
#ifdef __cplusplus
69
extern
"C"
{
70
#endif
71
72
73
/* ASN.1 from Kerberos RFC 1510
74
*/
75
76
/* EncryptedData ::= SEQUENCE {
77
** etype[0] INTEGER, -- EncryptionType
78
** kvno[1] INTEGER OPTIONAL,
79
** cipher[2] OCTET STRING -- ciphertext
80
** }
81
*/
82
typedef
struct
krb5_encdata_st
83
{
84
ASN1_INTEGER
*
etype
;
85
ASN1_INTEGER
*
kvno
;
86
ASN1_OCTET_STRING
*
cipher
;
87
}
KRB5_ENCDATA
;
88
89
DECLARE_STACK_OF
(
KRB5_ENCDATA
)
90
91
/* PrincipalName ::= SEQUENCE {
92
** name-type[0] INTEGER,
93
** name-string[1] SEQUENCE OF GeneralString
94
** }
95
*/
96
typedef struct
krb5_princname_st
97
{
98
ASN1_INTEGER
*
nametype
;
99
STACK_OF
(
ASN1_GENERALSTRING
) *namestring;
100
}
KRB5_PRINCNAME
;
101
102
DECLARE_STACK_OF
(
KRB5_PRINCNAME
)
103
104
105
/* Ticket ::= [APPLICATION 1] SEQUENCE {
106
** tkt-vno[0] INTEGER,
107
** realm[1] Realm,
108
** sname[2] PrincipalName,
109
** enc-part[3] EncryptedData
110
** }
111
*/
112
typedef struct
krb5_tktbody_st
113
{
114
ASN1_INTEGER
*
tktvno
;
115
ASN1_GENERALSTRING
*
realm
;
116
KRB5_PRINCNAME
*
sname
;
117
KRB5_ENCDATA
*
encdata
;
118
}
KRB5_TKTBODY
;
119
120
typedef
STACK_OF
(
KRB5_TKTBODY
) KRB5_TICKET;
121
DECLARE_STACK_OF
(
KRB5_TKTBODY
)
122
123
124
/* AP-REQ ::= [APPLICATION 14] SEQUENCE {
125
** pvno[0] INTEGER,
126
** msg-type[1] INTEGER,
127
** ap-options[2] APOptions,
128
** ticket[3] Ticket,
129
** authenticator[4] EncryptedData
130
** }
131
**
132
** APOptions ::= BIT STRING {
133
** reserved(0), use-session-key(1), mutual-required(2) }
134
*/
135
typedef struct
krb5_ap_req_st
136
{
137
ASN1_INTEGER
*
pvno
;
138
ASN1_INTEGER
*
msgtype
;
139
ASN1_BIT_STRING
*
apoptions
;
140
KRB5_TICKET *
ticket
;
141
KRB5_ENCDATA
*
authenticator
;
142
}
KRB5_APREQBODY
;
143
144
typedef
STACK_OF
(
KRB5_APREQBODY
) KRB5_APREQ;
145
DECLARE_STACK_OF
(
KRB5_APREQBODY
)
146
147
148
/* Authenticator Stuff */
149
150
151
/* Checksum ::= SEQUENCE {
152
** cksumtype[0] INTEGER,
153
** checksum[1] OCTET STRING
154
** }
155
*/
156
typedef struct
krb5_checksum_st
157
{
158
ASN1_INTEGER
*
ctype
;
159
ASN1_OCTET_STRING
*
checksum
;
160
}
KRB5_CHECKSUM
;
161
162
DECLARE_STACK_OF
(
KRB5_CHECKSUM
)
163
164
165
/* EncryptionKey ::= SEQUENCE {
166
** keytype[0] INTEGER,
167
** keyvalue[1] OCTET STRING
168
** }
169
*/
170
typedef struct
krb5_encryptionkey_st
171
{
172
ASN1_INTEGER
*
ktype
;
173
ASN1_OCTET_STRING
*
keyvalue
;
174
}
KRB5_ENCKEY
;
175
176
DECLARE_STACK_OF
(
KRB5_ENCKEY
)
177
178
179
/* AuthorizationData ::= SEQUENCE OF SEQUENCE {
180
** ad-type[0] INTEGER,
181
** ad-data[1] OCTET STRING
182
** }
183
*/
184
typedef struct
krb5_authorization_st
185
{
186
ASN1_INTEGER
*
adtype
;
187
ASN1_OCTET_STRING
*
addata
;
188
}
KRB5_AUTHDATA
;
189
190
DECLARE_STACK_OF
(
KRB5_AUTHDATA
)
191
192
193
/* -- Unencrypted authenticator
194
** Authenticator ::= [APPLICATION 2] SEQUENCE {
195
** authenticator-vno[0] INTEGER,
196
** crealm[1] Realm,
197
** cname[2] PrincipalName,
198
** cksum[3] Checksum OPTIONAL,
199
** cusec[4] INTEGER,
200
** ctime[5] KerberosTime,
201
** subkey[6] EncryptionKey OPTIONAL,
202
** seq-number[7] INTEGER OPTIONAL,
203
** authorization-data[8] AuthorizationData OPTIONAL
204
** }
205
*/
206
typedef struct
krb5_authenticator_st
207
{
208
ASN1_INTEGER
*
avno
;
209
ASN1_GENERALSTRING
*
crealm
;
210
KRB5_PRINCNAME
*
cname
;
211
KRB5_CHECKSUM
*
cksum
;
212
ASN1_INTEGER
*
cusec
;
213
ASN1_GENERALIZEDTIME
*
ctime
;
214
KRB5_ENCKEY
*
subkey
;
215
ASN1_INTEGER
*
seqnum
;
216
KRB5_AUTHDATA
*
authorization
;
217
}
KRB5_AUTHENTBODY
;
218
219
typedef
STACK_OF
(
KRB5_AUTHENTBODY
) KRB5_AUTHENT;
220
DECLARE_STACK_OF
(
KRB5_AUTHENTBODY
)
221
222
223
/* DECLARE_ASN1_FUNCTIONS(type) = DECLARE_ASN1_FUNCTIONS_name(type, type) =
224
** type *name##_new(void);
225
** void name##_free(type *a);
226
** DECLARE_ASN1_ENCODE_FUNCTIONS(type, name, name) =
227
** DECLARE_ASN1_ENCODE_FUNCTIONS(type, itname, name) =
228
** type *d2i_##name(type **a, const unsigned char **in, long len);
229
** int i2d_##name(type *a, unsigned char **out);
230
** DECLARE_ASN1_ITEM(itname) = OPENSSL_EXTERN const ASN1_ITEM itname##_it
231
*/
232
233
DECLARE_ASN1_FUNCTIONS
(
KRB5_ENCDATA
)
234
DECLARE_ASN1_FUNCTIONS
(
KRB5_PRINCNAME
)
235
DECLARE_ASN1_FUNCTIONS
(
KRB5_TKTBODY
)
236
DECLARE_ASN1_FUNCTIONS
(
KRB5_APREQBODY
)
237
DECLARE_ASN1_FUNCTIONS
(KRB5_TICKET)
238
DECLARE_ASN1_FUNCTIONS
(KRB5_APREQ)
239
240
DECLARE_ASN1_FUNCTIONS
(
KRB5_CHECKSUM
)
241
DECLARE_ASN1_FUNCTIONS
(
KRB5_ENCKEY
)
242
DECLARE_ASN1_FUNCTIONS
(
KRB5_AUTHDATA
)
243
DECLARE_ASN1_FUNCTIONS
(
KRB5_AUTHENTBODY
)
244
DECLARE_ASN1_FUNCTIONS
(KRB5_AUTHENT)
245
246
247
/* BEGIN ERROR CODES */
248
/* The following lines are auto generated by the script mkerr.pl. Any changes
249
* made after this point may be overwritten when the script is next run.
250
*/
251
252
#ifdef __cplusplus
253
}
254
#endif
255
#endif
256
Generated on Thu Jan 10 2013 09:53:37 for OpenSSL by
1.8.2