root/trunk/dep/include/openssl/krb5_asn.h @ 2

Revision 2, 7.5 kB (checked in by yumileroy, 17 years ago)

[svn] * Proper SVN structure

Original author: Neo2003
Date: 2008-10-02 16:23:55-05:00

Line 
1/* krb5_asn.h */
2/* Written by Vern Staats <staatsvr@asc.hpc.mil> 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 *    openssl-core@openssl.org.
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 * (eay@cryptsoft.com).  This product includes software written by Tim
56 * Hudson (tjh@cryptsoft.com).
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
69extern "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*/
82typedef struct  krb5_encdata_st
83        {
84        ASN1_INTEGER                    *etype;
85        ASN1_INTEGER                    *kvno;
86        ASN1_OCTET_STRING               *cipher;
87        }       KRB5_ENCDATA;
88
89DECLARE_STACK_OF(KRB5_ENCDATA)
90
91/*      PrincipalName ::=   SEQUENCE {
92**              name-type[0]                  INTEGER,
93**              name-string[1]                SEQUENCE OF GeneralString
94**      }
95*/
96typedef struct  krb5_princname_st
97        {
98        ASN1_INTEGER                    *nametype;
99        STACK_OF(ASN1_GENERALSTRING)    *namestring;
100        }       KRB5_PRINCNAME;
101
102DECLARE_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*/
112typedef 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
120typedef STACK_OF(KRB5_TKTBODY) KRB5_TICKET;
121DECLARE_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*/
135typedef 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
144typedef STACK_OF(KRB5_APREQBODY) KRB5_APREQ;
145DECLARE_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*/
156typedef struct  krb5_checksum_st
157        {
158        ASN1_INTEGER                    *ctype;
159        ASN1_OCTET_STRING               *checksum;
160        }       KRB5_CHECKSUM;
161
162DECLARE_STACK_OF(KRB5_CHECKSUM)
163
164
165/*      EncryptionKey ::=   SEQUENCE {
166**              keytype[0]                    INTEGER,
167**              keyvalue[1]                   OCTET STRING
168**      }
169*/
170typedef struct  krb5_encryptionkey_st
171        {
172        ASN1_INTEGER                    *ktype;
173        ASN1_OCTET_STRING               *keyvalue;
174        }       KRB5_ENCKEY;
175
176DECLARE_STACK_OF(KRB5_ENCKEY)
177
178
179/*      AuthorizationData ::=   SEQUENCE OF SEQUENCE {
180**              ad-type[0]                    INTEGER,
181**              ad-data[1]                    OCTET STRING
182**      }
183*/
184typedef struct  krb5_authorization_st
185        {
186        ASN1_INTEGER                    *adtype;
187        ASN1_OCTET_STRING               *addata;
188        }       KRB5_AUTHDATA;
189
190DECLARE_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*/
206typedef 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
219typedef STACK_OF(KRB5_AUTHENTBODY) KRB5_AUTHENT;
220DECLARE_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
233DECLARE_ASN1_FUNCTIONS(KRB5_ENCDATA)
234DECLARE_ASN1_FUNCTIONS(KRB5_PRINCNAME)
235DECLARE_ASN1_FUNCTIONS(KRB5_TKTBODY)
236DECLARE_ASN1_FUNCTIONS(KRB5_APREQBODY)
237DECLARE_ASN1_FUNCTIONS(KRB5_TICKET)
238DECLARE_ASN1_FUNCTIONS(KRB5_APREQ)
239
240DECLARE_ASN1_FUNCTIONS(KRB5_CHECKSUM)
241DECLARE_ASN1_FUNCTIONS(KRB5_ENCKEY)
242DECLARE_ASN1_FUNCTIONS(KRB5_AUTHDATA)
243DECLARE_ASN1_FUNCTIONS(KRB5_AUTHENTBODY)
244DECLARE_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
Note: See TracBrowser for help on using the browser.