summaryrefslogtreecommitdiff
path: root/src/lib/libssl/src/ssl/kssl.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib/libssl/src/ssl/kssl.h')
-rw-r--r--src/lib/libssl/src/ssl/kssl.h114
1 files changed, 0 insertions, 114 deletions
diff --git a/src/lib/libssl/src/ssl/kssl.h b/src/lib/libssl/src/ssl/kssl.h
index ec75188a8e..5070066cb3 100644
--- a/src/lib/libssl/src/ssl/kssl.h
+++ b/src/lib/libssl/src/ssl/kssl.h
@@ -65,118 +65,4 @@
65 65
66#include <openssl/opensslconf.h> 66#include <openssl/opensslconf.h>
67 67
68#ifndef OPENSSL_NO_KRB5
69
70#include <stdio.h>
71#include <ctype.h>
72#include <krb5.h>
73
74#ifdef __cplusplus
75extern "C" {
76#endif
77
78/*
79** Depending on which KRB5 implementation used, some types from
80** the other may be missing. Resolve that here and now
81*/
82#ifdef KRB5_HEIMDAL
83typedef unsigned char krb5_octet;
84#define FAR
85#else
86
87#ifndef FAR
88#define FAR
89#endif
90
91#endif
92
93/* Uncomment this to debug kssl problems or
94** to trace usage of the Kerberos session key
95**
96** #define KSSL_DEBUG
97*/
98
99#ifndef KRB5SVC
100#define KRB5SVC "host"
101#endif
102
103#ifndef KRB5KEYTAB
104#define KRB5KEYTAB "/etc/krb5.keytab"
105#endif
106
107#ifndef KRB5SENDAUTH
108#define KRB5SENDAUTH 1
109#endif
110
111#ifndef KRB5CHECKAUTH
112#define KRB5CHECKAUTH 1
113#endif
114
115#ifndef KSSL_CLOCKSKEW
116#define KSSL_CLOCKSKEW 300;
117#endif
118
119#define KSSL_ERR_MAX 256
120typedef struct kssl_err_st {
121 int reason;
122 char text[KSSL_ERR_MAX];
123} KSSL_ERR;
124
125
126/* Context for passing
127** (1) Kerberos session key to SSL, and
128** (2) Config data between application and SSL lib
129*/
130typedef struct kssl_ctx_st {
131 /* used by: disposition: */
132 char *service_name; /* C,S default ok (kssl) */
133 char *service_host; /* C input, REQUIRED */
134 char *client_princ; /* S output from krb5 ticket */
135 char *keytab_file; /* S NULL (/etc/krb5.keytab) */
136 char *cred_cache; /* C NULL (default) */
137 krb5_enctype enctype;
138 int length;
139 krb5_octet FAR *key;
140} KSSL_CTX;
141
142#define KSSL_CLIENT 1
143#define KSSL_SERVER 2
144#define KSSL_SERVICE 3
145#define KSSL_KEYTAB 4
146
147#define KSSL_CTX_OK 0
148#define KSSL_CTX_ERR 1
149#define KSSL_NOMEM 2
150
151/* Public (for use by applications that use OpenSSL with Kerberos 5 support */
152krb5_error_code kssl_ctx_setstring(KSSL_CTX *kssl_ctx, int which, char *text);
153KSSL_CTX *kssl_ctx_new(void);
154KSSL_CTX *kssl_ctx_free(KSSL_CTX *kssl_ctx);
155void kssl_ctx_show(KSSL_CTX *kssl_ctx);
156krb5_error_code kssl_ctx_setprinc(KSSL_CTX *kssl_ctx, int which,
157 krb5_data *realm, krb5_data *entity, int nentities);
158krb5_error_code kssl_cget_tkt(KSSL_CTX *kssl_ctx, krb5_data **enc_tktp,
159 krb5_data *authenp, KSSL_ERR *kssl_err);
160krb5_error_code kssl_sget_tkt(KSSL_CTX *kssl_ctx, krb5_data *indata,
161 krb5_ticket_times *ttimes, KSSL_ERR *kssl_err);
162krb5_error_code kssl_ctx_setkey(KSSL_CTX *kssl_ctx, krb5_keyblock *session);
163void kssl_err_set(KSSL_ERR *kssl_err, int reason, char *text);
164void kssl_krb5_free_data_contents(krb5_context context, krb5_data *data);
165krb5_error_code kssl_build_principal_2(krb5_context context,
166 krb5_principal *princ, int rlen, const char *realm, int slen,
167 const char *svc, int hlen, const char *host);
168krb5_error_code kssl_validate_times(krb5_timestamp atime,
169 krb5_ticket_times *ttimes);
170krb5_error_code kssl_check_authent(KSSL_CTX *kssl_ctx, krb5_data *authentp,
171 krb5_timestamp *atimep, KSSL_ERR *kssl_err);
172unsigned char *kssl_skip_confound(krb5_enctype enctype, unsigned char *authn);
173
174void SSL_set0_kssl_ctx(SSL *s, KSSL_CTX *kctx);
175KSSL_CTX *SSL_get0_kssl_ctx(SSL *s);
176char *kssl_ctx_get0_client_princ(KSSL_CTX *kctx);
177
178#ifdef __cplusplus
179}
180#endif
181#endif /* OPENSSL_NO_KRB5 */
182#endif /* KSSL_H */ 68#endif /* KSSL_H */