source: lab.git/Dev/utvpn/utvpn-unix-v101-7101-public/src/Mayaqua/openssl/krb5_asn.h @ a1bae3e

trunk
Last change on this file since a1bae3e was a1bae3e, checked in by mitty <mitty@…>, 12 years ago
  • copy vendor drop to trunk

git-svn-id: https://lab.mitty.jp/svn/lab/trunk@147 7d2118f6-f56c-43e7-95a2-4bb3031d96e7

  • Property mode set to 100644
File size: 7.7 KB
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 repository browser.