Make kerberos ciphersuite code work with newer header files
This commit is contained in:
parent
d9bfe4f97c
commit
0858b71b41
8
CHANGES
8
CHANGES
@ -780,6 +780,14 @@
|
|||||||
|
|
||||||
Changes between 0.9.7f and 0.9.7g [XX xxx xxxx]
|
Changes between 0.9.7f and 0.9.7g [XX xxx xxxx]
|
||||||
|
|
||||||
|
*) Fixes for newer kerberos headers. NB: the casts are needed because
|
||||||
|
the 'length' field is signed on one version and unsigned on another
|
||||||
|
with no (?) obvious way to tell the difference, without these VC++
|
||||||
|
complains. Also the "definition" of FAR (blank) is no longer included
|
||||||
|
nor is the error ENOMEM. KRB5_PRIVATE has to be set to 1 to pick up
|
||||||
|
some needed definitions.
|
||||||
|
[Steve Henson]
|
||||||
|
|
||||||
*) Undo Cygwin change.
|
*) Undo Cygwin change.
|
||||||
[Ulf Möller]
|
[Ulf Möller]
|
||||||
|
|
||||||
|
18
ssl/kssl.c
18
ssl/kssl.c
@ -73,6 +73,8 @@
|
|||||||
#undef _XOPEN_SOURCE /* To avoid clashes with anything else... */
|
#undef _XOPEN_SOURCE /* To avoid clashes with anything else... */
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
|
|
||||||
|
#define KRB5_PRIVATE 1
|
||||||
|
|
||||||
#include <openssl/ssl.h>
|
#include <openssl/ssl.h>
|
||||||
#include <openssl/evp.h>
|
#include <openssl/evp.h>
|
||||||
#include <openssl/objects.h>
|
#include <openssl/objects.h>
|
||||||
@ -80,6 +82,10 @@
|
|||||||
|
|
||||||
#ifndef OPENSSL_NO_KRB5
|
#ifndef OPENSSL_NO_KRB5
|
||||||
|
|
||||||
|
#ifndef ENOMEM
|
||||||
|
#define ENOMEM KRB5KRB_ERR_GENERIC
|
||||||
|
#endif
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* When OpenSSL is built on Windows, we do not want to require that
|
* When OpenSSL is built on Windows, we do not want to require that
|
||||||
* the Kerberos DLLs be available in order for the OpenSSL DLLs to
|
* the Kerberos DLLs be available in order for the OpenSSL DLLs to
|
||||||
@ -932,7 +938,7 @@ print_krb5_data(char *label, krb5_data *kdata)
|
|||||||
int i;
|
int i;
|
||||||
|
|
||||||
printf("%s[%d] ", label, kdata->length);
|
printf("%s[%d] ", label, kdata->length);
|
||||||
for (i=0; i < kdata->length; i++)
|
for (i=0; i < (int)kdata->length; i++)
|
||||||
{
|
{
|
||||||
if (0 && isprint((int) kdata->data[i]))
|
if (0 && isprint((int) kdata->data[i]))
|
||||||
printf( "%c ", kdata->data[i]);
|
printf( "%c ", kdata->data[i]);
|
||||||
@ -984,14 +990,14 @@ print_krb5_keyblock(char *label, krb5_keyblock *keyblk)
|
|||||||
#ifdef KRB5_HEIMDAL
|
#ifdef KRB5_HEIMDAL
|
||||||
printf("%s\n\t[et%d:%d]: ", label, keyblk->keytype,
|
printf("%s\n\t[et%d:%d]: ", label, keyblk->keytype,
|
||||||
keyblk->keyvalue->length);
|
keyblk->keyvalue->length);
|
||||||
for (i=0; i < keyblk->keyvalue->length; i++)
|
for (i=0; i < (int)keyblk->keyvalue->length; i++)
|
||||||
{
|
{
|
||||||
printf("%02x",(unsigned char *)(keyblk->keyvalue->contents)[i]);
|
printf("%02x",(unsigned char *)(keyblk->keyvalue->contents)[i]);
|
||||||
}
|
}
|
||||||
printf("\n");
|
printf("\n");
|
||||||
#else
|
#else
|
||||||
printf("%s\n\t[et%d:%d]: ", label, keyblk->enctype, keyblk->length);
|
printf("%s\n\t[et%d:%d]: ", label, keyblk->enctype, keyblk->length);
|
||||||
for (i=0; i < keyblk->length; i++)
|
for (i=0; i < (int)keyblk->length; i++)
|
||||||
{
|
{
|
||||||
printf("%02x",keyblk->contents[i]);
|
printf("%02x",keyblk->contents[i]);
|
||||||
}
|
}
|
||||||
@ -1010,12 +1016,12 @@ print_krb5_princ(char *label, krb5_principal_data *princ)
|
|||||||
|
|
||||||
printf("%s principal Realm: ", label);
|
printf("%s principal Realm: ", label);
|
||||||
if (princ == NULL) return;
|
if (princ == NULL) return;
|
||||||
for (ui=0; ui < princ->realm.length; ui++) putchar(princ->realm.data[ui]);
|
for (ui=0; ui < (int)princ->realm.length; ui++) putchar(princ->realm.data[ui]);
|
||||||
printf(" (nametype %d) has %d strings:\n", princ->type,princ->length);
|
printf(" (nametype %d) has %d strings:\n", princ->type,princ->length);
|
||||||
for (i=0; i < princ->length; i++)
|
for (i=0; i < (int)princ->length; i++)
|
||||||
{
|
{
|
||||||
printf("\t%d [%d]: ", i, princ->data[i].length);
|
printf("\t%d [%d]: ", i, princ->data[i].length);
|
||||||
for (uj=0; uj < princ->data[i].length; uj++) {
|
for (uj=0; uj < (int)princ->data[i].length; uj++) {
|
||||||
putchar(princ->data[i].data[uj]);
|
putchar(princ->data[i].data[uj]);
|
||||||
}
|
}
|
||||||
printf("\n");
|
printf("\n");
|
||||||
|
@ -82,6 +82,12 @@ extern "C" {
|
|||||||
#ifdef KRB5_HEIMDAL
|
#ifdef KRB5_HEIMDAL
|
||||||
typedef unsigned char krb5_octet;
|
typedef unsigned char krb5_octet;
|
||||||
#define FAR
|
#define FAR
|
||||||
|
#else
|
||||||
|
|
||||||
|
#ifndef FAR
|
||||||
|
#define FAR
|
||||||
|
#endif
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* Uncomment this to debug kssl problems or
|
/* Uncomment this to debug kssl problems or
|
||||||
|
@ -1850,8 +1850,8 @@ static int ssl3_get_client_key_exchange(SSL *s)
|
|||||||
goto err;
|
goto err;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (n != enc_ticket.length + authenticator.length +
|
if (n != (long)(enc_ticket.length + authenticator.length +
|
||||||
enc_pms.length + 6)
|
enc_pms.length + 6))
|
||||||
{
|
{
|
||||||
SSLerr(SSL_F_SSL3_GET_CLIENT_KEY_EXCHANGE,
|
SSLerr(SSL_F_SSL3_GET_CLIENT_KEY_EXCHANGE,
|
||||||
SSL_R_DATA_LENGTH_TOO_LONG);
|
SSL_R_DATA_LENGTH_TOO_LONG);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user