From 4c6cdf07c285c109df170c9c68642d4a17dfa1ad Mon Sep 17 00:00:00 2001 From: Asanka Herath Date: Mon, 23 Aug 2010 13:34:40 -0400 Subject: [PATCH 01/41] Fix calling convention for asn1 tests --- lib/asn1/check-common.c | 13 +++++++------ lib/asn1/check-common.h | 22 +++++++++++----------- 2 files changed, 18 insertions(+), 17 deletions(-) diff --git a/lib/asn1/check-common.c b/lib/asn1/check-common.c index 886be89e3..1848e4dbd 100644 --- a/lib/asn1/check-common.c +++ b/lib/asn1/check-common.c @@ -44,6 +44,7 @@ #include #include +#include "asn1-common.h" #include "check-common.h" RCSID("$Id$"); @@ -195,12 +196,12 @@ int generic_test (const struct test_case *tests, unsigned ntests, size_t data_size, - int (*encode)(unsigned char *, size_t, void *, size_t *), - int (*length)(void *), - int (*decode)(unsigned char *, size_t, void *, size_t *), - int (*free_data)(void *), + int (ASN1CALL *encode)(unsigned char *, size_t, void *, size_t *), + int (ASN1CALL *length)(void *), + int (ASN1CALL *decode)(unsigned char *, size_t, void *, size_t *), + int (ASN1CALL *free_data)(void *), int (*cmp)(void *a, void *b), - int (*copy)(const void *from, void *to)) + int (ASN1CALL *copy)(const void *from, void *to)) { unsigned char *buf, *buf2; int i; @@ -353,7 +354,7 @@ int generic_decode_fail (const struct test_case *tests, unsigned ntests, size_t data_size, - int (*decode)(unsigned char *, size_t, void *, size_t *)) + int (ASN1CALL *decode)(unsigned char *, size_t, void *, size_t *)) { unsigned char *buf; int i; diff --git a/lib/asn1/check-common.h b/lib/asn1/check-common.h index 9a36dbcc1..9ecbdbc35 100644 --- a/lib/asn1/check-common.h +++ b/lib/asn1/check-common.h @@ -40,28 +40,28 @@ struct test_case { char *name; }; -typedef int (*generic_encode)(unsigned char *, size_t, void *, size_t *); -typedef int (*generic_length)(void *); -typedef int (*generic_decode)(unsigned char *, size_t, void *, size_t *); -typedef int (*generic_free)(void *); -typedef int (*generic_copy)(const void *, void *); +typedef int (ASN1CALL *generic_encode)(unsigned char *, size_t, void *, size_t *); +typedef int (ASN1CALL *generic_length)(void *); +typedef int (ASN1CALL *generic_decode)(unsigned char *, size_t, void *, size_t *); +typedef int (ASN1CALL *generic_free)(void *); +typedef int (ASN1CALL *generic_copy)(const void *, void *); int generic_test (const struct test_case *tests, unsigned ntests, size_t data_size, - int (*encode)(unsigned char *, size_t, void *, size_t *), - int (*length)(void *), - int (*decode)(unsigned char *, size_t, void *, size_t *), - int (*free_data)(void *), + int (ASN1CALL *encode)(unsigned char *, size_t, void *, size_t *), + int (ASN1CALL *length)(void *), + int (ASN1CALL *decode)(unsigned char *, size_t, void *, size_t *), + int (ASN1CALL *free_data)(void *), int (*cmp)(void *a, void *b), - int (*copy)(const void *a, void *b)); + int (ASN1CALL *copy)(const void *a, void *b)); int generic_decode_fail(const struct test_case *tests, unsigned ntests, size_t data_size, - int (*decode)(unsigned char *, size_t, void *, size_t *)); + int (ASN1CALL *decode)(unsigned char *, size_t, void *, size_t *)); struct map_page; From 1e540dbf5ced42b9103736cab55ec3ea0848845c Mon Sep 17 00:00:00 2001 From: Asanka Herath Date: Mon, 23 Aug 2010 13:36:01 -0400 Subject: [PATCH 02/41] Windows: Fix dependencies for hcrypto/test_hmac.exe --- lib/hcrypto/NTMakefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/hcrypto/NTMakefile b/lib/hcrypto/NTMakefile index 1b2c166a1..48c4524e8 100644 --- a/lib/hcrypto/NTMakefile +++ b/lib/hcrypto/NTMakefile @@ -196,7 +196,7 @@ $(OBJ)\test_engine_dso.exe: $(OBJ)\test_engine_dso.obj $(LIBHEIMDAL) $(LIBROKEN) $(EXECONLINK) $(EXEPREP_NODIST) -$(OBJ)\test_hmac.exe: $(OBJ)\test_hmac.obj $(LIBHEIMDAL) +$(OBJ)\test_hmac.exe: $(OBJ)\test_hmac.obj $(LIBHEIMDAL) $(LIBROKEN) $(EXECONLINK) $(EXEPREP_NODIST) From 2ea71109d38f8f3fca6fd089c842a36dd9e13219 Mon Sep 17 00:00:00 2001 From: Asanka Herath Date: Mon, 23 Aug 2010 23:54:01 -0400 Subject: [PATCH 03/41] Windows: Add missing exports to libhcrypto-exports.def --- lib/hcrypto/libhcrypto-exports.def | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/lib/hcrypto/libhcrypto-exports.def b/lib/hcrypto/libhcrypto-exports.def index 2c80ee1b0..d9566370d 100644 --- a/lib/hcrypto/libhcrypto-exports.def +++ b/lib/hcrypto/libhcrypto-exports.def @@ -1,5 +1,6 @@ EXPORTS hc_AES_cbc_encrypt + hc_AES_cfb8_encrypt hc_AES_decrypt hc_AES_decrypt_key hc_BN_CTX_end @@ -67,7 +68,7 @@ EXPORTS hc_DH_get_ex_data hc_DH_imath_method hc_DH_ltm_method -; hc_DH_gmp_method +;! hc_DH_gmp_method hc_DH_new hc_DH_new_method hc_DH_null_method @@ -246,7 +247,7 @@ EXPORTS hc_RSA_get_default_method hc_RSA_get_method hc_RSA_imath_method - hc_RSA_ltm_method + hc_RSA_ltm_method ;! hc_RSA_new hc_RSA_new_method hc_RSA_null_method @@ -268,6 +269,7 @@ EXPORTS hc_SHA256_Init hc_SHA256_Update hc_UI_UTIL_read_pw_string + hc_i2d_DHparams hc_d2i_RSAPrivateKey hc_i2d_RSAPrivateKey hc_i2d_RSAPublicKey From 8a1fb9100978af3b0b923c96d08ef662fe4384af Mon Sep 17 00:00:00 2001 From: Asanka Herath Date: Mon, 23 Aug 2010 23:55:09 -0400 Subject: [PATCH 04/41] Don't fail tests for unsupported rand methods --- lib/hcrypto/test_crypto.in | 4 ++++ lib/hcrypto/test_rand.c | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/lib/hcrypto/test_crypto.in b/lib/hcrypto/test_crypto.in index 64ecd077d..65daa642a 100644 --- a/lib/hcrypto/test_crypto.in +++ b/lib/hcrypto/test_crypto.in @@ -60,6 +60,8 @@ for a in unix fortuna egd w32crypto ;do ${rand} --method=${a} --file=crypto-test 2>error res=$? if test "X$res" != X0 ; then + grep "unknown method" error && \ + { echo "random $a is not available" ; continue; } grep "random not ready yet" error || \ { echo "random $a ready failing" ; cat error; exit 1; } echo "random method $a out for lunch" @@ -101,6 +103,8 @@ if [ -e /dev/random -o -e /dev/urandom -o -e /dev/srandom -o -e /dev/arandom ] ; ${rand} --method=unix --file=unix 2>error res=$? if test "X$res" != X0 ; then + grep "unknown method" error && \ + { echo "random unix is not available"; exit 0; } grep "random not ready yet" error || \ { echo "random unix ready failing" ; cat error; exit 1; } echo "random method unix out for lunch" diff --git a/lib/hcrypto/test_rand.c b/lib/hcrypto/test_rand.c index dc98218d9..272d39d99 100644 --- a/lib/hcrypto/test_rand.c +++ b/lib/hcrypto/test_rand.c @@ -132,7 +132,7 @@ main(int argc, char **argv) RAND_set_rand_method(RAND_w32crypto_method()); #endif else - errx(0, "unknown method %s", rand_method); + errx(1, "unknown method %s", rand_method); } if (RAND_file_name(path, sizeof(path)) == NULL) From 738e2ea55b63480d92a9d3c52bf1d12b0482bfb7 Mon Sep 17 00:00:00 2001 From: Asanka Herath Date: Mon, 23 Aug 2010 23:57:19 -0400 Subject: [PATCH 05/41] Compress zeros when converting IPv6 addresses libroken implementation of inet_ntop() was not compressing strings of zeros. While it is optional, not doing so was intefering with address conversion tests in lib/krb5. --- lib/roken/inet_ntop.c | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/lib/roken/inet_ntop.c b/lib/roken/inet_ntop.c index 0c72b27fc..b3c327cc3 100644 --- a/lib/roken/inet_ntop.c +++ b/lib/roken/inet_ntop.c @@ -83,6 +83,7 @@ inet_ntop_v6 (const void *src, char *dst, size_t size) const struct in6_addr *addr = (struct in6_addr *)src; const u_char *ptr = addr->s6_addr; const char *orig_dst = dst; + int compressed = 0; if (size < INET6_ADDRSTRLEN) { errno = ENOSPC; @@ -91,6 +92,26 @@ inet_ntop_v6 (const void *src, char *dst, size_t size) for (i = 0; i < 8; ++i) { int non_zerop = 0; + if (compressed == 0 && + ptr[0] == 0 && ptr[1] == 0 && + i <= 5 && + ptr[2] == 0 && ptr[3] == 0 && + ptr[4] == 0 && ptr[5] == 0) { + + compressed = 1; + + if (i == 0) + *dst++ = ':'; + *dst++ = ':'; + + for (ptr += 6, i += 3; + i < 8 && ptr[0] == 0 && ptr[1] == 0; + ++i, ptr += 2); + + if (i >= 8) + break; + } + if (non_zerop || (ptr[0] >> 4)) { *dst++ = xdigits[ptr[0] >> 4]; non_zerop = 1; From b74fa126022c8422363c760c45dab821dc9623b2 Mon Sep 17 00:00:00 2001 From: Asanka Herath Date: Mon, 23 Aug 2010 23:58:59 -0400 Subject: [PATCH 06/41] Windows: Have test binaries depend on built libraries --- lib/krb5/NTMakefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/krb5/NTMakefile b/lib/krb5/NTMakefile index c1a9088b6..a72ca673c 100644 --- a/lib/krb5/NTMakefile +++ b/lib/krb5/NTMakefile @@ -393,8 +393,8 @@ test-run: test_time.exe cd $(SRCDIR) -$(test_binaries): $$(@R).obj - $(EXECONLINK) $(LIBHEIMDAL) $(LIBVERS) $(LIBROKEN) +$(test_binaries): $$(@R).obj $(LIBHEIMDAL) $(LIBVERS) $(LIBROKEN) + $(EXECONLINK) $(EXEPREP_NODIST) $(test_binaries:.exe=.obj): $$(@B).c From bd795255aaeeed9bf1be74c5dcad1cb0f3466d67 Mon Sep 17 00:00:00 2001 From: Asanka Herath Date: Tue, 24 Aug 2010 00:00:16 -0400 Subject: [PATCH 07/41] Fix fcc_remove_cred() on platforms with non-standard rename() --- lib/krb5/fcache.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/lib/krb5/fcache.c b/lib/krb5/fcache.c index 85c95bd5e..1e6397427 100644 --- a/lib/krb5/fcache.c +++ b/lib/krb5/fcache.c @@ -814,6 +814,14 @@ fcc_remove_cred(krb5_context context, } ret = rename(&newname[5], FILENAME(id)); +#ifdef RENAME_DOES_NOT_UNLINK + if (ret && (errno == EEXIST || errno == EACCES)) { + ret = unlink(FILENAME(id)); + if (ret == 0) { + ret = rename(&newname[5], FILENAME(id)); + } + } +#endif if (ret) ret = errno; free(newname); From 7e3bd7f9aac217ac5f3f865c49ca97c303414e6d Mon Sep 17 00:00:00 2001 From: Asanka Herath Date: Tue, 24 Aug 2010 00:02:12 -0400 Subject: [PATCH 08/41] Windows: Fix use of file descriptors as sockets Sockets and file descriptors are not interchangeable on Windows. The test for checking whether a given value is a socket or an FD was broken for the case where WinSock was not initialized to begin with. --- lib/roken/net_read.c | 3 ++- lib/roken/net_write.c | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/lib/roken/net_read.c b/lib/roken/net_read.c index 1f959db95..df1ac53de 100644 --- a/lib/roken/net_read.c +++ b/lib/roken/net_read.c @@ -86,7 +86,8 @@ net_read(rk_socket_t sock, void *buf, size_t nbytes) if (use_read == 0 && rk_IS_SOCKET_ERROR(count) && - rk_SOCK_ERRNO == WSAENOTSOCK) { + (rk_SOCK_ERRNO == WSANOTINITIALISED || + rk_SOCK_ERRNO == WSAENOTSOCK)) { use_read = 1; count = _read (sock, cbuf, rem); diff --git a/lib/roken/net_write.c b/lib/roken/net_write.c index 402e20915..e1cfa9907 100644 --- a/lib/roken/net_write.c +++ b/lib/roken/net_write.c @@ -83,7 +83,8 @@ net_write(rk_socket_t sock, const void *buf, size_t nbytes) if (use_write == 0 && rk_IS_SOCKET_ERROR(count) && - rk_SOCK_ERRNO == WSAENOTSOCK) { + (rk_SOCK_ERRNO == WSANOTINITIALISED || + rk_SOCK_ERRNO == WSAENOTSOCK)) { use_write = 1; count = _write (sock, cbuf, rem); From d4fc674024762a0729bebec8d9e6c204cd034af2 Mon Sep 17 00:00:00 2001 From: Asanka Herath Date: Tue, 24 Aug 2010 00:04:17 -0400 Subject: [PATCH 09/41] strlcat() isn't supposed to access *dst past dst_sz Try not to do that on platforms where we can avoid it. --- lib/roken/strlcat.c | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/lib/roken/strlcat.c b/lib/roken/strlcat.c index 0b676ef98..e8fe1b781 100644 --- a/lib/roken/strlcat.c +++ b/lib/roken/strlcat.c @@ -39,9 +39,16 @@ ROKEN_LIB_FUNCTION size_t ROKEN_LIB_CALL strlcat (char *dst, const char *src, size_t dst_sz) { - size_t len = strlen(dst); + size_t len; +#if defined(_MSC_VER) && _MSC_VER >= 1400 + len = strnlen_s(dst, dst_sz); +#elif defined(HAVE_STRNLEN) + len = strnlen(dst, dst_sz); +#else + len = strlen(dst); +#endif - if (dst_sz < len) + if (dst_sz <= len) /* the total size of dst is less than the string it contains; this could be considered bad input, but we might as well handle it */ From 7479c855a0362927055bc69ba14ccda90bc1de48 Mon Sep 17 00:00:00 2001 From: Asanka Herath Date: Tue, 24 Aug 2010 00:04:51 -0400 Subject: [PATCH 10/41] Windows: Don't attempt to copy a string to a zero length buffer It won't cause harm since strcpy_s() deals with zero length buffers, but it invokes the invalid parameter handler, which can disrupt execution on debug builds. --- lib/roken/strlcpy.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/lib/roken/strlcpy.c b/lib/roken/strlcpy.c index 7c1789bd1..0fe2b97fc 100644 --- a/lib/roken/strlcpy.c +++ b/lib/roken/strlcpy.c @@ -43,7 +43,8 @@ strlcpy (char *dst, const char *src, size_t dst_cch) { errno_t e; - e = strcpy_s(dst, dst_cch, src); + if (dst_cch > 0) + e = strncpy_s(dst, dst_cch, src, _TRUNCATE); return strlen (src); } From 6cc480fc092fb1fb0dae947435f9f6d1319338ed Mon Sep 17 00:00:00 2001 From: Asanka Herath Date: Tue, 24 Aug 2010 00:07:27 -0400 Subject: [PATCH 11/41] Additional tests cases for test_addr.c On platform where we build our own inet_ntop(), exercise it a bit more. Specifically for zero string compression of IPv6 addresses. --- lib/krb5/test_addr.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/lib/krb5/test_addr.c b/lib/krb5/test_addr.c index 6e972c949..9d9b603a9 100644 --- a/lib/krb5/test_addr.c +++ b/lib/krb5/test_addr.c @@ -210,7 +210,10 @@ main(int argc, char **argv) check_truncation(context, "IPv4:127.0.0.0"); check_truncation(context, "RANGE:IPv4:127.0.0.0-IPv4:127.0.0.255"); #ifdef HAVE_IPV6 + check_truncation(context, "IPv6:::"); check_truncation(context, "IPv6:::1"); + check_truncation(context, "IPv6:fe80:9:c3e:0:209:6bff:fea0:e522"); + check_truncation(context, "IPv6:fe80::209:0:0:0"); check_truncation(context, "IPv6:fe80::ffff:ffff:ffff:ffff"); #endif From 4b36b36e0be49ef6532e29ef7649c4249d8ef05b Mon Sep 17 00:00:00 2001 From: Asanka Herath Date: Tue, 24 Aug 2010 00:34:18 -0400 Subject: [PATCH 12/41] Add roken/rename.c to fix non-standard rename() roken/rename.c is for platforms where the native rename() implementation does not replace the target if it already exists. This implementation isn't atomic, but should be close enough for most purposes. For correct behavior, rk_rename() should be used instead of rename(). rk_rename() is #defined to be rename() on platforms where this fix is not necessary. --- lib/krb5/fcache.c | 20 ++---------------- lib/roken/NTMakefile | 1 + lib/roken/rename.c | 49 ++++++++++++++++++++++++++++++++++++++++++++ lib/roken/roken.h.in | 6 ++++++ 4 files changed, 58 insertions(+), 18 deletions(-) create mode 100644 lib/roken/rename.c diff --git a/lib/krb5/fcache.c b/lib/krb5/fcache.c index 1e6397427..218bd2cdb 100644 --- a/lib/krb5/fcache.c +++ b/lib/krb5/fcache.c @@ -813,15 +813,7 @@ fcc_remove_cred(krb5_context context, return ret; } - ret = rename(&newname[5], FILENAME(id)); -#ifdef RENAME_DOES_NOT_UNLINK - if (ret && (errno == EEXIST || errno == EACCES)) { - ret = unlink(FILENAME(id)); - if (ret == 0) { - ret = rename(&newname[5], FILENAME(id)); - } - } -#endif + ret = rk_rename(&newname[5], FILENAME(id)); if (ret) ret = errno; free(newname); @@ -917,15 +909,7 @@ fcc_move(krb5_context context, krb5_ccache from, krb5_ccache to) { krb5_error_code ret = 0; - ret = rename(FILENAME(from), FILENAME(to)); -#ifdef RENAME_DOES_NOT_UNLINK - if (ret && (errno == EEXIST || errno == EACCES)) { - ret = unlink(FILENAME(to)); - if (ret == 0) { - ret = rename(FILENAME(from), FILENAME(to)); - } - } -#endif + ret = rk_rename(FILENAME(from), FILENAME(to)); if (ret && errno != EXDEV) { char buf[128]; diff --git a/lib/roken/NTMakefile b/lib/roken/NTMakefile index 3c626f79c..41a820897 100644 --- a/lib/roken/NTMakefile +++ b/lib/roken/NTMakefile @@ -75,6 +75,7 @@ libroken_la_OBJS = \ $(OBJ)\parse_time.obj \ $(OBJ)\parse_units.obj \ $(OBJ)\realloc.obj \ + $(OBJ)\rename.obj \ $(OBJ)\resolve.obj \ $(OBJ)\roken_gethostby.obj \ $(OBJ)\rtbl.obj \ diff --git a/lib/roken/rename.c b/lib/roken/rename.c new file mode 100644 index 000000000..e61e27350 --- /dev/null +++ b/lib/roken/rename.c @@ -0,0 +1,49 @@ +/*********************************************************************** + * Copyright (c) 2010, Secure Endpoints Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * - Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * + * - Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS + * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE + * COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, + * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR + * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, + * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED + * OF THE POSSIBILITY OF SUCH DAMAGE. + * + **********************************************************************/ + +#include +#include "roken.h" + +/* rename() for platforms where the native implementation doesn't + * unlink newname. */ +int rk_rename(const char * oldname, const char * newname) +{ + int ret; + + ret = rename(oldname, newname); + if (ret != 0 && (errno == EEXIST || errno == EACCES)) { + ret = unlink(newname); + if (ret == 0) + ret = rename(oldname, newname); + } + + return ret; +} diff --git a/lib/roken/roken.h.in b/lib/roken/roken.h.in index 561257fff..275ab1775 100644 --- a/lib/roken/roken.h.in +++ b/lib/roken/roken.h.in @@ -616,6 +616,12 @@ ROKEN_LIB_FUNCTION int ROKEN_LIB_CALL initgroups(const char *, gid_t); ROKEN_LIB_FUNCTION int ROKEN_LIB_CALL fchown(int, uid_t, gid_t); #endif +#ifdef RENAME_DOES_NOT_UNLINK +ROKEN_LIB_FUNCTION int ROKEN_LIB_CALL rk_rename(const char *, const char *); +#else +#define rk_rename rename +#endif + #if !defined(HAVE_DAEMON) || defined(NEED_DAEMON_PROTO) #ifndef HAVE_DAEMON #define daemon rk_daemon From 55b0f00d5ee787fded11a96dcc6cf8dbead41836 Mon Sep 17 00:00:00 2001 From: Asanka Herath Date: Tue, 24 Aug 2010 04:24:53 -0400 Subject: [PATCH 13/41] Windows: Check for DATA symbols when scanning .obj files The export symbol list for ASN.1 on Windows is generated by scanning all the .obj files and extracting the symbols defined in them. The generated list did not specify which were functions and which were data symbols. This distinction is necessary for generating correct import library stubs. --- cf/w32-list-externs-from-objs.pl | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/cf/w32-list-externs-from-objs.pl b/cf/w32-list-externs-from-objs.pl index ebc776744..882801a22 100644 --- a/cf/w32-list-externs-from-objs.pl +++ b/cf/w32-list-externs-from-objs.pl @@ -17,8 +17,8 @@ sub dump_symbols_for_file($) while () { # 008 00000000 SECT3 notype () External | _encode_AccessDescription - /^[[:xdigit:]]{3,}\s[[:xdigit:]]{8,}\s(\w+)\s+\w*\s+(?:\(\)| )\s+(\w+)\s+\|\s+(\w+)$/ && do { - my ($section, $visibility, $symbol) = ($1, $2, $3); + /^[[:xdigit:]]{3,}\s[[:xdigit:]]{8,}\s(\w+)\s+\w*\s+(\(\)| )\s+(\w+)\s+\|\s+([0-9a-zA-Z\@\_]+)$/ && do { + my ($section, $type, $visibility, $symbol) = ($1, $2, $3, $4); if ($section ne "UNDEF" && $visibility eq "External") { print $fn if $show_module_name; @@ -27,7 +27,13 @@ sub dump_symbols_for_file($) if ($strip_leading_underscore && $symbol =~ /_(.*)/) { $symbol = $1; } + if ($strip_leading_underscore && $symbol =~ /(.*)\@.*$/) { + $symbol = $1; + } print $symbol; + if ($type ne "()") { + print "\tDATA"; + } print "\n"; } }; From ed226d4241912678eb76ca165ffd0b92e5a1a6b6 Mon Sep 17 00:00:00 2001 From: Asanka Herath Date: Tue, 24 Aug 2010 04:27:17 -0400 Subject: [PATCH 14/41] Declare ASN.1 exported data using ASN1EXP --- lib/asn1/gen.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/asn1/gen.c b/lib/asn1/gen.c index ac3653ebc..b1a4042d6 100644 --- a/lib/asn1/gen.c +++ b/lib/asn1/gen.c @@ -451,7 +451,7 @@ generate_constant (const Symbol *s) fprintf (headerfile, "} */\n"); fprintf (headerfile, - "extern const heim_oid asn1_oid_%s;\n" + "extern ASN1EXP const heim_oid asn1_oid_%s;\n" "#define ASN1_OID_%s (&asn1_oid_%s)\n\n", s->gen_name, gen_upper, From 84c42b359249c9be199e79aff87066072cfe1454 Mon Sep 17 00:00:00 2001 From: Asanka Herath Date: Tue, 24 Aug 2010 04:27:51 -0400 Subject: [PATCH 15/41] Windows: Regenerated libasn1-exports.def Sorted and with data exports declared using DATA statements. --- lib/asn1/libasn1-exports.def | 2872 +++++++++++++++++----------------- 1 file changed, 1441 insertions(+), 1431 deletions(-) diff --git a/lib/asn1/libasn1-exports.def b/lib/asn1/libasn1-exports.def index 51b2776ae..3815917dc 100644 --- a/lib/asn1/libasn1-exports.def +++ b/lib/asn1/libasn1-exports.def @@ -7,1268 +7,690 @@ EXPORTS KeyUsage2int SAMFlags2int TicketFlags2int - copy_AD_AND_OR - decode_AD_AND_OR - encode_AD_AND_OR - free_AD_AND_OR - length_AD_AND_OR - copy_AD_IF_RELEVANT - decode_AD_IF_RELEVANT - encode_AD_IF_RELEVANT - free_AD_IF_RELEVANT - length_AD_IF_RELEVANT - copy_AD_INITIAL_VERIFIED_CAS - decode_AD_INITIAL_VERIFIED_CAS - encode_AD_INITIAL_VERIFIED_CAS - free_AD_INITIAL_VERIFIED_CAS - length_AD_INITIAL_VERIFIED_CAS - copy_AD_KDCIssued - decode_AD_KDCIssued - encode_AD_KDCIssued - free_AD_KDCIssued - length_AD_KDCIssued - copy_AD_LoginAlias - decode_AD_LoginAlias - encode_AD_LoginAlias - free_AD_LoginAlias - length_AD_LoginAlias - copy_AD_MANDATORY_FOR_KDC - decode_AD_MANDATORY_FOR_KDC - encode_AD_MANDATORY_FOR_KDC - free_AD_MANDATORY_FOR_KDC - length_AD_MANDATORY_FOR_KDC - copy_APOptions - decode_APOptions - encode_APOptions - free_APOptions - length_APOptions - asn1_APOptions_units - copy_AP_REP - decode_AP_REP - encode_AP_REP - free_AP_REP - length_AP_REP - copy_AP_REQ - decode_AP_REQ - encode_AP_REQ - free_AP_REQ - length_AP_REQ - copy_AS_REP - decode_AS_REP - encode_AS_REP - free_AS_REP - length_AS_REP - copy_AS_REQ - decode_AS_REQ - encode_AS_REQ - free_AS_REQ - length_AS_REQ - copy_AUTHDATA_TYPE - decode_AUTHDATA_TYPE - encode_AUTHDATA_TYPE - free_AUTHDATA_TYPE - length_AUTHDATA_TYPE - copy_AccessDescription - decode_AccessDescription - encode_AccessDescription - free_AccessDescription - length_AccessDescription - copy_AlgorithmIdentifier - decode_AlgorithmIdentifier - encode_AlgorithmIdentifier - free_AlgorithmIdentifier - length_AlgorithmIdentifier - copy_Attribute - decode_Attribute - encode_Attribute - free_Attribute - length_Attribute - copy_AttributeType - decode_AttributeType - encode_AttributeType - free_AttributeType - length_AttributeType - copy_AttributeTypeAndValue - decode_AttributeTypeAndValue - encode_AttributeTypeAndValue - free_AttributeTypeAndValue - length_AttributeTypeAndValue - copy_AttributeValue - decode_AttributeValue - encode_AttributeValue - free_AttributeValue - length_AttributeValue - copy_AuthPack - decode_AuthPack - encode_AuthPack - free_AuthPack - length_AuthPack - copy_AuthPack_Win2k - decode_AuthPack_Win2k - encode_AuthPack_Win2k - free_AuthPack_Win2k - length_AuthPack_Win2k - copy_Authenticator - decode_Authenticator - encode_Authenticator - free_Authenticator - length_Authenticator - copy_AuthorityInfoAccessSyntax - decode_AuthorityInfoAccessSyntax - encode_AuthorityInfoAccessSyntax - free_AuthorityInfoAccessSyntax - length_AuthorityInfoAccessSyntax - copy_AuthorityKeyIdentifier - decode_AuthorityKeyIdentifier - encode_AuthorityKeyIdentifier - free_AuthorityKeyIdentifier - length_AuthorityKeyIdentifier + _der_timegm + _heim_der_set_sort + _heim_fix_dce + _heim_len_int + _heim_len_unsigned + _heim_time2generalizedtime add_AuthorizationData - copy_AuthorizationData - decode_AuthorizationData - encode_AuthorizationData - free_AuthorizationData - length_AuthorizationData - remove_AuthorizationData - copy_AuthorizationDataElement - decode_AuthorizationDataElement - encode_AuthorizationDataElement - free_AuthorizationDataElement - length_AuthorizationDataElement - copy_BaseDistance - decode_BaseDistance - encode_BaseDistance - free_BaseDistance - length_BaseDistance - copy_BasicConstraints - decode_BasicConstraints - encode_BasicConstraints - free_BasicConstraints - length_BasicConstraints - copy_CKSUMTYPE - decode_CKSUMTYPE - encode_CKSUMTYPE - free_CKSUMTYPE - length_CKSUMTYPE - copy_CMSAttributes - decode_CMSAttributes - encode_CMSAttributes - free_CMSAttributes - length_CMSAttributes - copy_CMSCBCParameter - decode_CMSCBCParameter - encode_CMSCBCParameter - free_CMSCBCParameter - length_CMSCBCParameter - copy_CMSEncryptedData - decode_CMSEncryptedData - encode_CMSEncryptedData - free_CMSEncryptedData - length_CMSEncryptedData - copy_CMSIdentifier - decode_CMSIdentifier - encode_CMSIdentifier - free_CMSIdentifier - length_CMSIdentifier - copy_CMSRC2CBCParameter - decode_CMSRC2CBCParameter - encode_CMSRC2CBCParameter - free_CMSRC2CBCParameter - length_CMSRC2CBCParameter - copy_CMSVersion - decode_CMSVersion - encode_CMSVersion - free_CMSVersion - length_CMSVersion - copy_CRLCertificateList - decode_CRLCertificateList - encode_CRLCertificateList - free_CRLCertificateList - length_CRLCertificateList add_CRLDistributionPoints - copy_CRLDistributionPoints - decode_CRLDistributionPoints - encode_CRLDistributionPoints - free_CRLDistributionPoints - length_CRLDistributionPoints - remove_CRLDistributionPoints - copy_CRLReason - decode_CRLReason - encode_CRLReason - free_CRLReason - length_CRLReason - copy_Certificate - decode_Certificate - encode_Certificate - free_Certificate - length_Certificate - copy_CertificateList - decode_CertificateList - encode_CertificateList - free_CertificateList - length_CertificateList - copy_CertificateRevocationLists - decode_CertificateRevocationLists - encode_CertificateRevocationLists - free_CertificateRevocationLists - length_CertificateRevocationLists - copy_CertificateSerialNumber - decode_CertificateSerialNumber - encode_CertificateSerialNumber - free_CertificateSerialNumber - length_CertificateSerialNumber - copy_CertificateSet - decode_CertificateSet - encode_CertificateSet - free_CertificateSet - length_CertificateSet - copy_Certificates - decode_Certificates - encode_Certificates - free_Certificates - length_Certificates - copy_ChangePasswdDataMS - decode_ChangePasswdDataMS - encode_ChangePasswdDataMS - free_ChangePasswdDataMS - length_ChangePasswdDataMS - copy_Checksum - decode_Checksum - encode_Checksum - free_Checksum - length_Checksum - copy_ContentEncryptionAlgorithmIdentifier - decode_ContentEncryptionAlgorithmIdentifier - encode_ContentEncryptionAlgorithmIdentifier - free_ContentEncryptionAlgorithmIdentifier - length_ContentEncryptionAlgorithmIdentifier - copy_ContentInfo - decode_ContentInfo - encode_ContentInfo - free_ContentInfo - length_ContentInfo - copy_ContentType - decode_ContentType - encode_ContentType - free_ContentType - length_ContentType - copy_DHNonce - decode_DHNonce - encode_DHNonce - free_DHNonce - length_DHNonce - copy_DHPublicKey - decode_DHPublicKey - encode_DHPublicKey - free_DHPublicKey - length_DHPublicKey - copy_DHRepInfo - decode_DHRepInfo - encode_DHRepInfo - free_DHRepInfo - length_DHRepInfo - copy_DSAParams - decode_DSAParams - encode_DSAParams - free_DSAParams - length_DSAParams - copy_DSAPublicKey - decode_DSAPublicKey - encode_DSAPublicKey - free_DSAPublicKey - length_DSAPublicKey - copy_DSASigValue - decode_DSASigValue - encode_DSASigValue - free_DSASigValue - length_DSASigValue - copy_DigestAlgorithmIdentifier - decode_DigestAlgorithmIdentifier - encode_DigestAlgorithmIdentifier - free_DigestAlgorithmIdentifier - length_DigestAlgorithmIdentifier - copy_DigestAlgorithmIdentifiers - decode_DigestAlgorithmIdentifiers - encode_DigestAlgorithmIdentifiers - free_DigestAlgorithmIdentifiers - length_DigestAlgorithmIdentifiers - copy_DigestError - decode_DigestError - encode_DigestError - free_DigestError - length_DigestError - copy_DigestInfo - decode_DigestInfo - encode_DigestInfo - free_DigestInfo - length_DigestInfo - copy_DigestInit - decode_DigestInit - encode_DigestInit - free_DigestInit - length_DigestInit - copy_DigestInitReply - decode_DigestInitReply - encode_DigestInitReply - free_DigestInitReply - length_DigestInitReply - copy_DigestREP - decode_DigestREP - encode_DigestREP - free_DigestREP - length_DigestREP - copy_DigestREQ - decode_DigestREQ - encode_DigestREQ - free_DigestREQ - length_DigestREQ - copy_DigestRepInner - decode_DigestRepInner - encode_DigestRepInner - free_DigestRepInner - length_DigestRepInner - copy_DigestReqInner - decode_DigestReqInner - encode_DigestReqInner - free_DigestReqInner - length_DigestReqInner - copy_DigestRequest - decode_DigestRequest - encode_DigestRequest - free_DigestRequest - length_DigestRequest - copy_DigestResponse - decode_DigestResponse - encode_DigestResponse - free_DigestResponse - length_DigestResponse - copy_DigestTypes - decode_DigestTypes - encode_DigestTypes - free_DigestTypes - length_DigestTypes - asn1_DigestTypes_units - copy_DirectoryString - decode_DirectoryString - encode_DirectoryString - free_DirectoryString - length_DirectoryString - copy_DistributionPoint - decode_DistributionPoint - encode_DistributionPoint - free_DistributionPoint - length_DistributionPoint - copy_DistributionPointName - decode_DistributionPointName - encode_DistributionPointName - free_DistributionPointName - length_DistributionPointName - copy_DistributionPointReasonFlags - decode_DistributionPointReasonFlags - encode_DistributionPointReasonFlags - free_DistributionPointReasonFlags - length_DistributionPointReasonFlags - asn1_DistributionPointReasonFlags_units - copy_DomainParameters - decode_DomainParameters - encode_DomainParameters - free_DomainParameters - length_DomainParameters - copy_ECDSA_Sig_Value - decode_ECDSA_Sig_Value - encode_ECDSA_Sig_Value - free_ECDSA_Sig_Value - length_ECDSA_Sig_Value - copy_ECParameters - decode_ECParameters - encode_ECParameters - free_ECParameters - length_ECParameters - copy_ECPoint - decode_ECPoint - encode_ECPoint - free_ECPoint - length_ECPoint - copy_ENCTYPE - decode_ENCTYPE - encode_ENCTYPE - free_ENCTYPE - length_ENCTYPE + add_DigestAlgorithmIdentifiers add_ETYPE_INFO - copy_ETYPE_INFO - decode_ETYPE_INFO - encode_ETYPE_INFO - free_ETYPE_INFO - length_ETYPE_INFO - remove_ETYPE_INFO add_ETYPE_INFO2 - copy_ETYPE_INFO2 - decode_ETYPE_INFO2 - encode_ETYPE_INFO2 - free_ETYPE_INFO2 - length_ETYPE_INFO2 - remove_ETYPE_INFO2 - copy_ETYPE_INFO2_ENTRY - decode_ETYPE_INFO2_ENTRY - encode_ETYPE_INFO2_ENTRY - free_ETYPE_INFO2_ENTRY - length_ETYPE_INFO2_ENTRY - copy_ETYPE_INFO_ENTRY - decode_ETYPE_INFO_ENTRY - encode_ETYPE_INFO_ENTRY - free_ETYPE_INFO_ENTRY - length_ETYPE_INFO_ENTRY - copy_EncAPRepPart - decode_EncAPRepPart - encode_EncAPRepPart - free_EncAPRepPart - length_EncAPRepPart - copy_EncASRepPart - decode_EncASRepPart - encode_EncASRepPart - free_EncASRepPart - length_EncASRepPart - copy_EncKDCRepPart - decode_EncKDCRepPart - encode_EncKDCRepPart - free_EncKDCRepPart - length_EncKDCRepPart - copy_EncKrbCredPart - decode_EncKrbCredPart - encode_EncKrbCredPart - free_EncKrbCredPart - length_EncKrbCredPart - copy_EncKrbPrivPart - decode_EncKrbPrivPart - encode_EncKrbPrivPart - free_EncKrbPrivPart - length_EncKrbPrivPart - copy_EncTGSRepPart - decode_EncTGSRepPart - encode_EncTGSRepPart - free_EncTGSRepPart - length_EncTGSRepPart - copy_EncTicketPart - decode_EncTicketPart - encode_EncTicketPart - free_EncTicketPart - length_EncTicketPart - copy_EncapsulatedContentInfo - decode_EncapsulatedContentInfo - encode_EncapsulatedContentInfo - free_EncapsulatedContentInfo - length_EncapsulatedContentInfo - copy_EncryptedContent - decode_EncryptedContent - encode_EncryptedContent - free_EncryptedContent - length_EncryptedContent - copy_EncryptedContentInfo - decode_EncryptedContentInfo - encode_EncryptedContentInfo - free_EncryptedContentInfo - length_EncryptedContentInfo - copy_EncryptedData - decode_EncryptedData - encode_EncryptedData - free_EncryptedData - length_EncryptedData - copy_EncryptedKey - decode_EncryptedKey - encode_EncryptedKey - free_EncryptedKey - length_EncryptedKey - copy_EncryptionKey - decode_EncryptionKey - encode_EncryptionKey - free_EncryptionKey - length_EncryptionKey - copy_EnvelopedData - decode_EnvelopedData - encode_EnvelopedData - free_EnvelopedData - length_EnvelopedData - copy_EtypeList - decode_EtypeList - encode_EtypeList - free_EtypeList - length_EtypeList - copy_ExtKeyUsage - decode_ExtKeyUsage - encode_ExtKeyUsage - free_ExtKeyUsage - length_ExtKeyUsage - copy_Extension - decode_Extension - encode_Extension - free_Extension - length_Extension add_Extensions - copy_Extensions - decode_Extensions - encode_Extensions - free_Extensions - length_Extensions - remove_Extensions - copy_ExternalPrincipalIdentifier - decode_ExternalPrincipalIdentifier - encode_ExternalPrincipalIdentifier - free_ExternalPrincipalIdentifier - length_ExternalPrincipalIdentifier - copy_ExternalPrincipalIdentifiers - decode_ExternalPrincipalIdentifiers - encode_ExternalPrincipalIdentifiers - free_ExternalPrincipalIdentifiers - length_ExternalPrincipalIdentifiers - copy_FastOptions - decode_FastOptions - encode_FastOptions - free_FastOptions - length_FastOptions - asn1_FastOptions_units - copy_GeneralName - decode_GeneralName - encode_GeneralName - free_GeneralName - length_GeneralName add_GeneralNames - copy_GeneralNames - decode_GeneralNames - encode_GeneralNames - free_GeneralNames - length_GeneralNames - remove_GeneralNames - copy_GeneralSubtree - decode_GeneralSubtree - encode_GeneralSubtree - free_GeneralSubtree - length_GeneralSubtree - copy_GeneralSubtrees - decode_GeneralSubtrees - encode_GeneralSubtrees - free_GeneralSubtrees - length_GeneralSubtrees - copy_HostAddress - decode_HostAddress - encode_HostAddress - free_HostAddress - length_HostAddress - copy_HostAddresses - decode_HostAddresses - encode_HostAddresses - free_HostAddresses - length_HostAddresses - copy_IssuerAndSerialNumber - decode_IssuerAndSerialNumber - encode_IssuerAndSerialNumber - free_IssuerAndSerialNumber - length_IssuerAndSerialNumber - copy_KDCDHKeyInfo - decode_KDCDHKeyInfo - encode_KDCDHKeyInfo - free_KDCDHKeyInfo - length_KDCDHKeyInfo - copy_KDCDHKeyInfo_Win2k - decode_KDCDHKeyInfo_Win2k - encode_KDCDHKeyInfo_Win2k - free_KDCDHKeyInfo_Win2k - length_KDCDHKeyInfo_Win2k - copy_KDCOptions - decode_KDCOptions - encode_KDCOptions - free_KDCOptions - length_KDCOptions - asn1_KDCOptions_units - copy_KDC_REP - decode_KDC_REP - encode_KDC_REP - free_KDC_REP - length_KDC_REP - copy_KDC_REQ - decode_KDC_REQ - encode_KDC_REQ - free_KDC_REQ - length_KDC_REQ - copy_KDC_REQ_BODY - decode_KDC_REQ_BODY - encode_KDC_REQ_BODY - free_KDC_REQ_BODY - length_KDC_REQ_BODY - copy_KDFAlgorithmId - decode_KDFAlgorithmId - encode_KDFAlgorithmId - free_KDFAlgorithmId - length_KDFAlgorithmId - copy_KRB5PrincipalName - decode_KRB5PrincipalName - encode_KRB5PrincipalName - free_KRB5PrincipalName - length_KRB5PrincipalName - copy_KRB5SignedPath - decode_KRB5SignedPath - encode_KRB5SignedPath - free_KRB5SignedPath - length_KRB5SignedPath - copy_KRB5SignedPathData - decode_KRB5SignedPathData - encode_KRB5SignedPathData - free_KRB5SignedPathData - length_KRB5SignedPathData - copy_KRB_CRED - decode_KRB_CRED - encode_KRB_CRED - free_KRB_CRED - length_KRB_CRED - copy_KRB_ERROR - decode_KRB_ERROR - encode_KRB_ERROR - free_KRB_ERROR - length_KRB_ERROR - copy_KRB_PRIV - decode_KRB_PRIV - encode_KRB_PRIV - free_KRB_PRIV - length_KRB_PRIV - copy_KRB_SAFE - decode_KRB_SAFE - encode_KRB_SAFE - free_KRB_SAFE - length_KRB_SAFE - copy_KRB_SAFE_BODY - decode_KRB_SAFE_BODY - encode_KRB_SAFE_BODY - free_KRB_SAFE_BODY - length_KRB_SAFE_BODY - copy_KX509_ERROR_CODE - decode_KX509_ERROR_CODE - encode_KX509_ERROR_CODE - free_KX509_ERROR_CODE - length_KX509_ERROR_CODE - copy_KerberosString - decode_KerberosString - encode_KerberosString - free_KerberosString - length_KerberosString - copy_KerberosTime - decode_KerberosTime - encode_KerberosTime - free_KerberosTime - length_KerberosTime - copy_KeyEncryptionAlgorithmIdentifier - decode_KeyEncryptionAlgorithmIdentifier - encode_KeyEncryptionAlgorithmIdentifier - free_KeyEncryptionAlgorithmIdentifier - length_KeyEncryptionAlgorithmIdentifier - copy_KeyIdentifier - decode_KeyIdentifier - encode_KeyIdentifier - free_KeyIdentifier - length_KeyIdentifier - copy_KeyTransRecipientInfo - decode_KeyTransRecipientInfo - encode_KeyTransRecipientInfo - free_KeyTransRecipientInfo - length_KeyTransRecipientInfo - copy_KeyUsage - decode_KeyUsage - encode_KeyUsage - free_KeyUsage - length_KeyUsage - asn1_KeyUsage_units - copy_KrbCredInfo - decode_KrbCredInfo - encode_KrbCredInfo - free_KrbCredInfo - length_KrbCredInfo - copy_KrbFastArmor - decode_KrbFastArmor - encode_KrbFastArmor - free_KrbFastArmor - length_KrbFastArmor - copy_KrbFastArmoredRep - decode_KrbFastArmoredRep - encode_KrbFastArmoredRep - free_KrbFastArmoredRep - length_KrbFastArmoredRep - copy_KrbFastArmoredReq - decode_KrbFastArmoredReq - encode_KrbFastArmoredReq - free_KrbFastArmoredReq - length_KrbFastArmoredReq - copy_KrbFastFinished - decode_KrbFastFinished - encode_KrbFastFinished - free_KrbFastFinished - length_KrbFastFinished - copy_KrbFastReq - decode_KrbFastReq - encode_KrbFastReq - free_KrbFastReq - length_KrbFastReq - copy_KrbFastResponse - decode_KrbFastResponse - encode_KrbFastResponse - free_KrbFastResponse - length_KrbFastResponse - copy_Kx509Request - decode_Kx509Request - encode_Kx509Request - free_Kx509Request - length_Kx509Request - copy_Kx509Response - decode_Kx509Response - encode_Kx509Response - free_Kx509Response - length_Kx509Response - copy_LR_TYPE - decode_LR_TYPE - encode_LR_TYPE - free_LR_TYPE - length_LR_TYPE - copy_LastReq - decode_LastReq - encode_LastReq - free_LastReq - length_LastReq - copy_MESSAGE_TYPE - decode_MESSAGE_TYPE - encode_MESSAGE_TYPE - free_MESSAGE_TYPE - length_MESSAGE_TYPE add_METHOD_DATA - copy_METHOD_DATA - decode_METHOD_DATA - encode_METHOD_DATA - free_METHOD_DATA - length_METHOD_DATA - remove_METHOD_DATA - copy_MS_UPN_SAN - decode_MS_UPN_SAN - encode_MS_UPN_SAN - free_MS_UPN_SAN - length_MS_UPN_SAN - copy_MessageDigest - decode_MessageDigest - encode_MessageDigest - free_MessageDigest - length_MessageDigest - copy_NAME_TYPE - decode_NAME_TYPE - encode_NAME_TYPE - free_NAME_TYPE - length_NAME_TYPE - copy_NTLMInit - decode_NTLMInit - encode_NTLMInit - free_NTLMInit - length_NTLMInit - copy_NTLMInitReply - decode_NTLMInitReply - encode_NTLMInitReply - free_NTLMInitReply - length_NTLMInitReply - copy_NTLMReply - decode_NTLMReply - encode_NTLMReply - free_NTLMReply - length_NTLMReply - copy_NTLMRequest - decode_NTLMRequest - encode_NTLMRequest - free_NTLMRequest - length_NTLMRequest - copy_NTLMRequest2 - decode_NTLMRequest2 - encode_NTLMRequest2 - free_NTLMRequest2 - length_NTLMRequest2 - copy_NTLMResponse - decode_NTLMResponse - encode_NTLMResponse - free_NTLMResponse - length_NTLMResponse - copy_Name - decode_Name - encode_Name - free_Name - length_Name - copy_NameConstraints - decode_NameConstraints - encode_NameConstraints - free_NameConstraints - length_NameConstraints - copy_OriginatorInfo - decode_OriginatorInfo - encode_OriginatorInfo - free_OriginatorInfo - length_OriginatorInfo - copy_OtherName - decode_OtherName - encode_OtherName - free_OtherName - length_OtherName - copy_PADATA_TYPE - decode_PADATA_TYPE - encode_PADATA_TYPE - free_PADATA_TYPE - length_PADATA_TYPE - copy_PA_ClientCanonicalized - decode_PA_ClientCanonicalized - encode_PA_ClientCanonicalized - free_PA_ClientCanonicalized - length_PA_ClientCanonicalized - copy_PA_ClientCanonicalizedNames - decode_PA_ClientCanonicalizedNames - encode_PA_ClientCanonicalizedNames - free_PA_ClientCanonicalizedNames - length_PA_ClientCanonicalizedNames - copy_PA_DATA - decode_PA_DATA - encode_PA_DATA - free_PA_DATA - length_PA_DATA - copy_PA_ENC_SAM_RESPONSE_ENC - decode_PA_ENC_SAM_RESPONSE_ENC - encode_PA_ENC_SAM_RESPONSE_ENC - free_PA_ENC_SAM_RESPONSE_ENC - length_PA_ENC_SAM_RESPONSE_ENC - copy_PA_ENC_TS_ENC - decode_PA_ENC_TS_ENC - encode_PA_ENC_TS_ENC - free_PA_ENC_TS_ENC - length_PA_ENC_TS_ENC - copy_PA_FX_FAST_REPLY - decode_PA_FX_FAST_REPLY - encode_PA_FX_FAST_REPLY - free_PA_FX_FAST_REPLY - length_PA_FX_FAST_REPLY - copy_PA_FX_FAST_REQUEST - decode_PA_FX_FAST_REQUEST - encode_PA_FX_FAST_REQUEST - free_PA_FX_FAST_REQUEST - length_PA_FX_FAST_REQUEST - copy_PA_PAC_REQUEST - decode_PA_PAC_REQUEST - encode_PA_PAC_REQUEST - free_PA_PAC_REQUEST - length_PA_PAC_REQUEST - copy_PA_PK_AS_REP - decode_PA_PK_AS_REP - encode_PA_PK_AS_REP - free_PA_PK_AS_REP - length_PA_PK_AS_REP - copy_PA_PK_AS_REP_BTMM - decode_PA_PK_AS_REP_BTMM - encode_PA_PK_AS_REP_BTMM - free_PA_PK_AS_REP_BTMM - length_PA_PK_AS_REP_BTMM - copy_PA_PK_AS_REP_Win2k - decode_PA_PK_AS_REP_Win2k - encode_PA_PK_AS_REP_Win2k - free_PA_PK_AS_REP_Win2k - length_PA_PK_AS_REP_Win2k - copy_PA_PK_AS_REQ - decode_PA_PK_AS_REQ - encode_PA_PK_AS_REQ - free_PA_PK_AS_REQ - length_PA_PK_AS_REQ - copy_PA_PK_AS_REQ_Win2k - decode_PA_PK_AS_REQ_Win2k - encode_PA_PK_AS_REQ_Win2k - free_PA_PK_AS_REQ_Win2k - length_PA_PK_AS_REQ_Win2k - copy_PA_S4U2Self - decode_PA_S4U2Self - encode_PA_S4U2Self - free_PA_S4U2Self - length_PA_S4U2Self - copy_PA_SAM_CHALLENGE_2 - decode_PA_SAM_CHALLENGE_2 - encode_PA_SAM_CHALLENGE_2 - free_PA_SAM_CHALLENGE_2 - length_PA_SAM_CHALLENGE_2 - copy_PA_SAM_CHALLENGE_2_BODY - decode_PA_SAM_CHALLENGE_2_BODY - encode_PA_SAM_CHALLENGE_2_BODY - free_PA_SAM_CHALLENGE_2_BODY - length_PA_SAM_CHALLENGE_2_BODY - copy_PA_SAM_REDIRECT - decode_PA_SAM_REDIRECT - encode_PA_SAM_REDIRECT - free_PA_SAM_REDIRECT - length_PA_SAM_REDIRECT - copy_PA_SAM_RESPONSE_2 - decode_PA_SAM_RESPONSE_2 - encode_PA_SAM_RESPONSE_2 - free_PA_SAM_RESPONSE_2 - length_PA_SAM_RESPONSE_2 - copy_PA_SAM_TYPE - decode_PA_SAM_TYPE - encode_PA_SAM_TYPE - free_PA_SAM_TYPE - length_PA_SAM_TYPE - copy_PA_SERVER_REFERRAL_DATA - decode_PA_SERVER_REFERRAL_DATA - encode_PA_SERVER_REFERRAL_DATA - free_PA_SERVER_REFERRAL_DATA - length_PA_SERVER_REFERRAL_DATA - copy_PA_ServerReferralData - decode_PA_ServerReferralData - encode_PA_ServerReferralData - free_PA_ServerReferralData - length_PA_ServerReferralData - copy_PA_SvrReferralData - decode_PA_SvrReferralData - encode_PA_SvrReferralData - free_PA_SvrReferralData - length_PA_SvrReferralData - copy_PKAuthenticator - decode_PKAuthenticator - encode_PKAuthenticator - free_PKAuthenticator - length_PKAuthenticator - copy_PKAuthenticator_Win2k - decode_PKAuthenticator_Win2k - encode_PKAuthenticator_Win2k - free_PKAuthenticator_Win2k - length_PKAuthenticator_Win2k - copy_PKCS12_Attribute - decode_PKCS12_Attribute - encode_PKCS12_Attribute - free_PKCS12_Attribute - length_PKCS12_Attribute - copy_PKCS12_Attributes - decode_PKCS12_Attributes - encode_PKCS12_Attributes - free_PKCS12_Attributes - length_PKCS12_Attributes - copy_PKCS12_AuthenticatedSafe - decode_PKCS12_AuthenticatedSafe - encode_PKCS12_AuthenticatedSafe - free_PKCS12_AuthenticatedSafe - length_PKCS12_AuthenticatedSafe - copy_PKCS12_CertBag - decode_PKCS12_CertBag - encode_PKCS12_CertBag - free_PKCS12_CertBag - length_PKCS12_CertBag - copy_PKCS12_MacData - decode_PKCS12_MacData - encode_PKCS12_MacData - free_PKCS12_MacData - length_PKCS12_MacData - copy_PKCS12_OctetString - decode_PKCS12_OctetString - encode_PKCS12_OctetString - free_PKCS12_OctetString - length_PKCS12_OctetString - copy_PKCS12_PBEParams - decode_PKCS12_PBEParams - encode_PKCS12_PBEParams - free_PKCS12_PBEParams - length_PKCS12_PBEParams - copy_PKCS12_PFX - decode_PKCS12_PFX - encode_PKCS12_PFX - free_PKCS12_PFX - length_PKCS12_PFX - copy_PKCS12_SafeBag - decode_PKCS12_SafeBag - encode_PKCS12_SafeBag - free_PKCS12_SafeBag - length_PKCS12_SafeBag - copy_PKCS12_SafeContents - decode_PKCS12_SafeContents - encode_PKCS12_SafeContents - free_PKCS12_SafeContents - length_PKCS12_SafeContents - copy_PKCS8Attributes - decode_PKCS8Attributes - encode_PKCS8Attributes - free_PKCS8Attributes - length_PKCS8Attributes - copy_PKCS8EncryptedData - decode_PKCS8EncryptedData - encode_PKCS8EncryptedData - free_PKCS8EncryptedData - length_PKCS8EncryptedData - copy_PKCS8EncryptedPrivateKeyInfo - decode_PKCS8EncryptedPrivateKeyInfo - encode_PKCS8EncryptedPrivateKeyInfo - free_PKCS8EncryptedPrivateKeyInfo - length_PKCS8EncryptedPrivateKeyInfo - copy_PKCS8PrivateKey - decode_PKCS8PrivateKey - encode_PKCS8PrivateKey - free_PKCS8PrivateKey - length_PKCS8PrivateKey - copy_PKCS8PrivateKeyAlgorithmIdentifier - decode_PKCS8PrivateKeyAlgorithmIdentifier - encode_PKCS8PrivateKeyAlgorithmIdentifier - free_PKCS8PrivateKeyAlgorithmIdentifier - length_PKCS8PrivateKeyAlgorithmIdentifier - copy_PKCS8PrivateKeyInfo - decode_PKCS8PrivateKeyInfo - encode_PKCS8PrivateKeyInfo - free_PKCS8PrivateKeyInfo - length_PKCS8PrivateKeyInfo - copy_PKCS9_BMPString - decode_PKCS9_BMPString - encode_PKCS9_BMPString - free_PKCS9_BMPString - length_PKCS9_BMPString - copy_PKCS9_friendlyName - decode_PKCS9_friendlyName - encode_PKCS9_friendlyName - free_PKCS9_friendlyName - length_PKCS9_friendlyName - copy_PKIXXmppAddr - decode_PKIXXmppAddr - encode_PKIXXmppAddr - free_PKIXXmppAddr - length_PKIXXmppAddr - copy_PROV_SRV_LOCATION - decode_PROV_SRV_LOCATION - encode_PROV_SRV_LOCATION - free_PROV_SRV_LOCATION - length_PROV_SRV_LOCATION - copy_PkinitSP80056AOtherInfo - decode_PkinitSP80056AOtherInfo - encode_PkinitSP80056AOtherInfo - free_PkinitSP80056AOtherInfo - length_PkinitSP80056AOtherInfo - copy_PkinitSuppPubInfo - decode_PkinitSuppPubInfo - encode_PkinitSuppPubInfo - free_PkinitSuppPubInfo - length_PkinitSuppPubInfo - copy_Principal - decode_Principal - encode_Principal - free_Principal - length_Principal - copy_PrincipalName - decode_PrincipalName - encode_PrincipalName - free_PrincipalName - length_PrincipalName add_Principals - copy_Principals - decode_Principals - encode_Principals - free_Principals - length_Principals - remove_Principals - copy_ProxyCertInfo - decode_ProxyCertInfo - encode_ProxyCertInfo - free_ProxyCertInfo - length_ProxyCertInfo - copy_ProxyPolicy - decode_ProxyPolicy - encode_ProxyPolicy - free_ProxyPolicy - length_ProxyPolicy - copy_RDNSequence - decode_RDNSequence - encode_RDNSequence - free_RDNSequence - length_RDNSequence - copy_RSAPrivateKey - decode_RSAPrivateKey - encode_RSAPrivateKey - free_RSAPrivateKey - length_RSAPrivateKey - copy_RSAPublicKey - decode_RSAPublicKey - encode_RSAPublicKey - free_RSAPublicKey - length_RSAPublicKey - copy_Realm - decode_Realm - encode_Realm - free_Realm - length_Realm - copy_RecipientIdentifier - decode_RecipientIdentifier - encode_RecipientIdentifier - free_RecipientIdentifier - length_RecipientIdentifier - copy_RecipientInfo - decode_RecipientInfo - encode_RecipientInfo - free_RecipientInfo - length_RecipientInfo - copy_RecipientInfos - decode_RecipientInfos - encode_RecipientInfos - free_RecipientInfos - length_RecipientInfos - copy_RelativeDistinguishedName - decode_RelativeDistinguishedName - encode_RelativeDistinguishedName - free_RelativeDistinguishedName - length_RelativeDistinguishedName - copy_ReplyKeyPack - decode_ReplyKeyPack - encode_ReplyKeyPack - free_ReplyKeyPack - length_ReplyKeyPack - copy_ReplyKeyPack_Win2k - decode_ReplyKeyPack_Win2k - encode_ReplyKeyPack_Win2k - free_ReplyKeyPack_Win2k - length_ReplyKeyPack_Win2k - copy_SAMFlags - decode_SAMFlags - encode_SAMFlags - free_SAMFlags - length_SAMFlags + asn1_APOptions_units + asn1_DigestTypes_units + asn1_DistributionPointReasonFlags_units + asn1_FastOptions_units + asn1_KDCOptions_units + asn1_KeyUsage_units asn1_SAMFlags_units - copy_SignatureAlgorithmIdentifier - decode_SignatureAlgorithmIdentifier - encode_SignatureAlgorithmIdentifier - free_SignatureAlgorithmIdentifier - length_SignatureAlgorithmIdentifier - copy_SignatureValue - decode_SignatureValue - encode_SignatureValue - free_SignatureValue - length_SignatureValue - copy_SignedData - decode_SignedData - encode_SignedData - free_SignedData - length_SignedData - copy_SignerIdentifier - decode_SignerIdentifier - encode_SignerIdentifier - free_SignerIdentifier - length_SignerIdentifier - copy_SignerInfo - decode_SignerInfo - encode_SignerInfo - free_SignerInfo - length_SignerInfo - copy_SignerInfos - decode_SignerInfos - encode_SignerInfos - free_SignerInfos - length_SignerInfos - copy_SubjectKeyIdentifier - decode_SubjectKeyIdentifier - encode_SubjectKeyIdentifier - free_SubjectKeyIdentifier - length_SubjectKeyIdentifier - copy_SubjectPublicKeyInfo - decode_SubjectPublicKeyInfo - encode_SubjectPublicKeyInfo - free_SubjectPublicKeyInfo - length_SubjectPublicKeyInfo - copy_TBSCRLCertList - decode_TBSCRLCertList - encode_TBSCRLCertList - free_TBSCRLCertList - length_TBSCRLCertList - copy_TBSCertificate - decode_TBSCertificate - encode_TBSCertificate - free_TBSCertificate - length_TBSCertificate - copy_TD_DH_PARAMETERS - decode_TD_DH_PARAMETERS - encode_TD_DH_PARAMETERS - free_TD_DH_PARAMETERS - length_TD_DH_PARAMETERS - copy_TD_INVALID_CERTIFICATES - decode_TD_INVALID_CERTIFICATES - encode_TD_INVALID_CERTIFICATES - free_TD_INVALID_CERTIFICATES - length_TD_INVALID_CERTIFICATES - copy_TD_TRUSTED_CERTIFIERS - decode_TD_TRUSTED_CERTIFIERS - encode_TD_TRUSTED_CERTIFIERS - free_TD_TRUSTED_CERTIFIERS - length_TD_TRUSTED_CERTIFIERS - copy_TGS_REP - decode_TGS_REP - encode_TGS_REP - free_TGS_REP - length_TGS_REP - copy_TGS_REQ - decode_TGS_REQ - encode_TGS_REQ - free_TGS_REQ - length_TGS_REQ - copy_TYPED_DATA - decode_TYPED_DATA - encode_TYPED_DATA - free_TYPED_DATA - length_TYPED_DATA - copy_Ticket - decode_Ticket - encode_Ticket - free_Ticket - length_Ticket - copy_TicketFlags - decode_TicketFlags - encode_TicketFlags - free_TicketFlags - length_TicketFlags asn1_TicketFlags_units + asn1_oid_id_Userid DATA + asn1_oid_id_aes_128_cbc DATA + asn1_oid_id_aes_192_cbc DATA + asn1_oid_id_aes_256_cbc DATA + asn1_oid_id_at_commonName DATA + asn1_oid_id_at_countryName DATA + asn1_oid_id_at_generationQualifier DATA + asn1_oid_id_at_givenName DATA + asn1_oid_id_at_initials DATA + asn1_oid_id_at_localityName DATA + asn1_oid_id_at_name DATA + asn1_oid_id_at_organizationName DATA + asn1_oid_id_at_organizationalUnitName DATA + asn1_oid_id_at_pseudonym DATA + asn1_oid_id_at_serialNumber DATA + asn1_oid_id_at_stateOrProvinceName DATA + asn1_oid_id_at_streetAddress DATA + asn1_oid_id_at_surname DATA + asn1_oid_id_dhpublicnumber DATA + asn1_oid_id_domainComponent DATA + asn1_oid_id_dsa DATA + asn1_oid_id_dsa_with_sha1 DATA + asn1_oid_id_ecDH DATA + asn1_oid_id_ecMQV DATA + asn1_oid_id_ecPublicKey DATA + asn1_oid_id_ec_group_secp160r1 DATA + asn1_oid_id_ec_group_secp160r2 DATA + asn1_oid_id_ec_group_secp256r1 DATA + asn1_oid_id_ecdsa_with_SHA1 DATA + asn1_oid_id_ecdsa_with_SHA256 DATA + asn1_oid_id_heim_rsa_pkcs1_x509 DATA + asn1_oid_id_ms_cert_enroll_domaincontroller DATA + asn1_oid_id_ms_client_authentication DATA + asn1_oid_id_netscape DATA + asn1_oid_id_netscape_cert_comment DATA + asn1_oid_id_nistAlgorithm DATA + asn1_oid_id_nist_aes_algs DATA + asn1_oid_id_nist_sha_algs DATA + asn1_oid_id_pbeWithSHAAnd128BitRC2_CBC DATA + asn1_oid_id_pbeWithSHAAnd128BitRC4 DATA + asn1_oid_id_pbeWithSHAAnd2_KeyTripleDES_CBC DATA + asn1_oid_id_pbeWithSHAAnd3_KeyTripleDES_CBC DATA + asn1_oid_id_pbeWithSHAAnd40BitRC4 DATA + asn1_oid_id_pbewithSHAAnd40BitRC2_CBC DATA + asn1_oid_id_pkauthdata DATA + asn1_oid_id_pkcs12_bagtypes DATA + asn1_oid_id_pkcs12_certBag DATA + asn1_oid_id_pkcs12_crlBag DATA + asn1_oid_id_pkcs12_keyBag DATA + asn1_oid_id_pkcs12_pkcs8ShroudedKeyBag DATA + asn1_oid_id_pkcs12_safeContentsBag DATA + asn1_oid_id_pkcs12_secretBag DATA + asn1_oid_id_pkcs1_md2WithRSAEncryption DATA + asn1_oid_id_pkcs1_md5WithRSAEncryption DATA + asn1_oid_id_pkcs1_rsaEncryption DATA + asn1_oid_id_pkcs1_sha1WithRSAEncryption DATA + asn1_oid_id_pkcs1_sha256WithRSAEncryption DATA + asn1_oid_id_pkcs1_sha384WithRSAEncryption DATA + asn1_oid_id_pkcs1_sha512WithRSAEncryption DATA + asn1_oid_id_pkcs2_md2 DATA + asn1_oid_id_pkcs2_md4 DATA + asn1_oid_id_pkcs2_md5 DATA + asn1_oid_id_pkcs3_des_ede3_cbc DATA + asn1_oid_id_pkcs3_rc2_cbc DATA + asn1_oid_id_pkcs3_rc4 DATA + asn1_oid_id_pkcs7 DATA + asn1_oid_id_pkcs7_data DATA + asn1_oid_id_pkcs7_digestedData DATA + asn1_oid_id_pkcs7_encryptedData DATA + asn1_oid_id_pkcs7_envelopedData DATA + asn1_oid_id_pkcs7_signedAndEnvelopedData DATA + asn1_oid_id_pkcs7_signedData DATA + asn1_oid_id_pkcs9_contentType DATA + asn1_oid_id_pkcs9_countersignature DATA + asn1_oid_id_pkcs9_emailAddress DATA + asn1_oid_id_pkcs9_messageDigest DATA + asn1_oid_id_pkcs9_signingTime DATA + asn1_oid_id_pkcs_1 DATA + asn1_oid_id_pkcs_12 DATA + asn1_oid_id_pkcs_12PbeIds DATA + asn1_oid_id_pkcs_2 DATA + asn1_oid_id_pkcs_3 DATA + asn1_oid_id_pkcs_9 DATA + asn1_oid_id_pkcs_9_at_certTypes DATA + asn1_oid_id_pkcs_9_at_certTypes_x509 DATA + asn1_oid_id_pkcs_9_at_friendlyName DATA + asn1_oid_id_pkcs_9_at_localKeyId DATA + asn1_oid_id_pkdhkeydata DATA + asn1_oid_id_pkekuoid DATA + asn1_oid_id_pkinit DATA + asn1_oid_id_pkinit_kdf DATA + asn1_oid_id_pkinit_kdf_ah_sha1 DATA + asn1_oid_id_pkinit_kdf_ah_sha256 DATA + asn1_oid_id_pkinit_kdf_ah_sha512 DATA + asn1_oid_id_pkinit_ms_eku DATA + asn1_oid_id_pkinit_ms_san DATA + asn1_oid_id_pkinit_san DATA + asn1_oid_id_pkix DATA + asn1_oid_id_pkix_kp DATA + asn1_oid_id_pkix_kp_OCSPSigning DATA + asn1_oid_id_pkix_kp_clientAuth DATA + asn1_oid_id_pkix_kp_emailProtection DATA + asn1_oid_id_pkix_kp_serverAuth DATA + asn1_oid_id_pkix_kp_timeStamping DATA + asn1_oid_id_pkix_on DATA + asn1_oid_id_pkix_on_dnsSRV DATA + asn1_oid_id_pkix_on_xmppAddr DATA + asn1_oid_id_pkix_pe DATA + asn1_oid_id_pkix_pe_authorityInfoAccess DATA + asn1_oid_id_pkix_pe_proxyCertInfo DATA + asn1_oid_id_pkix_ppl DATA + asn1_oid_id_pkix_ppl_anyLanguage DATA + asn1_oid_id_pkix_ppl_independent DATA + asn1_oid_id_pkix_ppl_inheritAll DATA + asn1_oid_id_pkkdcekuoid DATA + asn1_oid_id_pkrkeydata DATA + asn1_oid_id_rsa_digestAlgorithm DATA + asn1_oid_id_rsa_digest_md2 DATA + asn1_oid_id_rsa_digest_md4 DATA + asn1_oid_id_rsa_digest_md5 DATA + asn1_oid_id_rsadsi_des_ede3_cbc DATA + asn1_oid_id_rsadsi_encalg DATA + asn1_oid_id_rsadsi_rc2_cbc DATA + asn1_oid_id_secsig_sha_1 DATA + asn1_oid_id_secsig_sha_1WithRSAEncryption DATA + asn1_oid_id_sha224 DATA + asn1_oid_id_sha256 DATA + asn1_oid_id_sha384 DATA + asn1_oid_id_sha512 DATA + asn1_oid_id_uspkicommon_card_id DATA + asn1_oid_id_uspkicommon_piv_interim DATA + asn1_oid_id_x509_ce DATA + asn1_oid_id_x509_ce_authorityKeyIdentifier DATA + asn1_oid_id_x509_ce_basicConstraints DATA + asn1_oid_id_x509_ce_cRLDistributionPoints DATA + asn1_oid_id_x509_ce_cRLNumber DATA + asn1_oid_id_x509_ce_cRLReason DATA + asn1_oid_id_x509_ce_certificateIssuer DATA + asn1_oid_id_x509_ce_certificatePolicies DATA + asn1_oid_id_x509_ce_deltaCRLIndicator DATA + asn1_oid_id_x509_ce_extKeyUsage DATA + asn1_oid_id_x509_ce_freshestCRL DATA + asn1_oid_id_x509_ce_holdInstructionCode DATA + asn1_oid_id_x509_ce_inhibitAnyPolicy DATA + asn1_oid_id_x509_ce_invalidityDate DATA + asn1_oid_id_x509_ce_issuerAltName DATA + asn1_oid_id_x509_ce_issuingDistributionPoint DATA + asn1_oid_id_x509_ce_keyUsage DATA + asn1_oid_id_x509_ce_nameConstraints DATA + asn1_oid_id_x509_ce_policyConstraints DATA + asn1_oid_id_x509_ce_policyMappings DATA + asn1_oid_id_x509_ce_privateKeyUsagePeriod DATA + asn1_oid_id_x509_ce_subjectAltName DATA + asn1_oid_id_x509_ce_subjectDirectoryAttributes DATA + asn1_oid_id_x509_ce_subjectKeyIdentifier DATA + asn1_oid_id_x520_at DATA + asn1_oid_id_x9_57 DATA + copy_AD_AND_OR + copy_AD_IF_RELEVANT + copy_AD_INITIAL_VERIFIED_CAS + copy_AD_KDCIssued + copy_AD_LoginAlias + copy_AD_MANDATORY_FOR_KDC + copy_APOptions + copy_AP_REP + copy_AP_REQ + copy_AS_REP + copy_AS_REQ + copy_AUTHDATA_TYPE + copy_AccessDescription + copy_AlgorithmIdentifier + copy_Attribute + copy_AttributeType + copy_AttributeTypeAndValue + copy_AttributeValue + copy_AuthPack + copy_AuthPack_Win2k + copy_Authenticator + copy_AuthorityInfoAccessSyntax + copy_AuthorityKeyIdentifier + copy_AuthorizationData + copy_AuthorizationDataElement + copy_BaseDistance + copy_BasicConstraints + copy_CKSUMTYPE + copy_CMSAttributes + copy_CMSCBCParameter + copy_CMSEncryptedData + copy_CMSIdentifier + copy_CMSRC2CBCParameter + copy_CMSVersion + copy_CRLCertificateList + copy_CRLDistributionPoints + copy_CRLReason + copy_Certificate + copy_CertificateList + copy_CertificateRevocationLists + copy_CertificateSerialNumber + copy_CertificateSet + copy_Certificates + copy_ChangePasswdDataMS + copy_Checksum + copy_ContentEncryptionAlgorithmIdentifier + copy_ContentInfo + copy_ContentType + copy_DHNonce + copy_DHParameter + copy_DHPublicKey + copy_DHRepInfo + copy_DSAParams + copy_DSAPublicKey + copy_DSASigValue + copy_DigestAlgorithmIdentifier + copy_DigestAlgorithmIdentifiers + copy_DigestError + copy_DigestInfo + copy_DigestInit + copy_DigestInitReply + copy_DigestREP + copy_DigestREQ + copy_DigestRepInner + copy_DigestReqInner + copy_DigestRequest + copy_DigestResponse + copy_DigestTypes + copy_DirectoryString + copy_DistributionPoint + copy_DistributionPointName + copy_DistributionPointReasonFlags + copy_DomainParameters + copy_ECDSA_Sig_Value + copy_ECParameters + copy_ECPoint + copy_ENCTYPE + copy_ETYPE_INFO + copy_ETYPE_INFO2 + copy_ETYPE_INFO2_ENTRY + copy_ETYPE_INFO_ENTRY + copy_EncAPRepPart + copy_EncASRepPart + copy_EncKDCRepPart + copy_EncKrbCredPart + copy_EncKrbPrivPart + copy_EncTGSRepPart + copy_EncTicketPart + copy_EncapsulatedContentInfo + copy_EncryptedContent + copy_EncryptedContentInfo + copy_EncryptedData + copy_EncryptedKey + copy_EncryptionKey + copy_EnvelopedData + copy_EtypeList + copy_ExtKeyUsage + copy_Extension + copy_Extensions + copy_ExternalPrincipalIdentifier + copy_ExternalPrincipalIdentifiers + copy_FastOptions + copy_GeneralName + copy_GeneralNames + copy_GeneralSubtree + copy_GeneralSubtrees + copy_HostAddress + copy_HostAddresses + copy_IssuerAndSerialNumber + copy_KDCDHKeyInfo + copy_KDCDHKeyInfo_Win2k + copy_KDCOptions + copy_KDC_REP + copy_KDC_REQ + copy_KDC_REQ_BODY + copy_KDFAlgorithmId + copy_KRB5PrincipalName + copy_KRB5SignedPath + copy_KRB5SignedPathData + copy_KRB_CRED + copy_KRB_ERROR + copy_KRB_PRIV + copy_KRB_SAFE + copy_KRB_SAFE_BODY + copy_KX509_ERROR_CODE + copy_KerberosString + copy_KerberosTime + copy_KeyEncryptionAlgorithmIdentifier + copy_KeyIdentifier + copy_KeyTransRecipientInfo + copy_KeyUsage + copy_KrbCredInfo + copy_KrbFastArmor + copy_KrbFastArmoredRep + copy_KrbFastArmoredReq + copy_KrbFastFinished + copy_KrbFastReq + copy_KrbFastResponse + copy_Kx509Request + copy_Kx509Response + copy_LR_TYPE + copy_LastReq + copy_MESSAGE_TYPE + copy_METHOD_DATA + copy_MS_UPN_SAN + copy_MessageDigest + copy_NAME_TYPE + copy_NTLMInit + copy_NTLMInitReply + copy_NTLMReply + copy_NTLMRequest + copy_NTLMRequest2 + copy_NTLMResponse + copy_Name + copy_NameConstraints + copy_OriginatorInfo + copy_OtherName + copy_PADATA_TYPE + copy_PA_ClientCanonicalized + copy_PA_ClientCanonicalizedNames + copy_PA_DATA + copy_PA_ENC_SAM_RESPONSE_ENC + copy_PA_ENC_TS_ENC + copy_PA_FX_FAST_REPLY + copy_PA_FX_FAST_REQUEST + copy_PA_PAC_REQUEST + copy_PA_PK_AS_REP + copy_PA_PK_AS_REP_BTMM + copy_PA_PK_AS_REP_Win2k + copy_PA_PK_AS_REQ + copy_PA_PK_AS_REQ_Win2k + copy_PA_S4U2Self + copy_PA_SAM_CHALLENGE_2 + copy_PA_SAM_CHALLENGE_2_BODY + copy_PA_SAM_REDIRECT + copy_PA_SAM_RESPONSE_2 + copy_PA_SAM_TYPE + copy_PA_SERVER_REFERRAL_DATA + copy_PA_ServerReferralData + copy_PA_SvrReferralData + copy_PKAuthenticator + copy_PKAuthenticator_Win2k + copy_PKCS12_Attribute + copy_PKCS12_Attributes + copy_PKCS12_AuthenticatedSafe + copy_PKCS12_CertBag + copy_PKCS12_MacData + copy_PKCS12_OctetString + copy_PKCS12_PBEParams + copy_PKCS12_PFX + copy_PKCS12_SafeBag + copy_PKCS12_SafeContents + copy_PKCS8Attributes + copy_PKCS8EncryptedData + copy_PKCS8EncryptedPrivateKeyInfo + copy_PKCS8PrivateKey + copy_PKCS8PrivateKeyAlgorithmIdentifier + copy_PKCS8PrivateKeyInfo + copy_PKCS9_BMPString + copy_PKCS9_friendlyName + copy_PKIXXmppAddr + copy_PROV_SRV_LOCATION + copy_PkinitSP80056AOtherInfo + copy_PkinitSuppPubInfo + copy_Principal + copy_PrincipalName + copy_Principals + copy_ProxyCertInfo + copy_ProxyPolicy + copy_RDNSequence + copy_RSAPrivateKey + copy_RSAPublicKey + copy_Realm + copy_RecipientIdentifier + copy_RecipientInfo + copy_RecipientInfos + copy_RelativeDistinguishedName + copy_ReplyKeyPack + copy_ReplyKeyPack_Win2k + copy_SAMFlags + copy_SignatureAlgorithmIdentifier + copy_SignatureValue + copy_SignedData + copy_SignerIdentifier + copy_SignerInfo + copy_SignerInfos + copy_SubjectKeyIdentifier + copy_SubjectPublicKeyInfo + copy_TBSCRLCertList + copy_TBSCertificate + copy_TD_DH_PARAMETERS + copy_TD_INVALID_CERTIFICATES + copy_TD_TRUSTED_CERTIFIERS + copy_TGS_REP + copy_TGS_REQ + copy_TYPED_DATA + copy_Ticket + copy_TicketFlags copy_Time - decode_Time - encode_Time - free_Time - length_Time copy_TransitedEncoding - decode_TransitedEncoding - encode_TransitedEncoding - free_TransitedEncoding - length_TransitedEncoding copy_TrustedCA - decode_TrustedCA - encode_TrustedCA - free_TrustedCA - length_TrustedCA copy_TrustedCA_Win2k - decode_TrustedCA_Win2k - encode_TrustedCA_Win2k - free_TrustedCA_Win2k - length_TrustedCA_Win2k copy_TypedData - decode_TypedData - encode_TypedData - free_TypedData - length_TypedData copy_UniqueIdentifier - decode_UniqueIdentifier - encode_UniqueIdentifier - free_UniqueIdentifier - length_UniqueIdentifier copy_UnprotectedAttributes - decode_UnprotectedAttributes - encode_UnprotectedAttributes - free_UnprotectedAttributes - length_UnprotectedAttributes copy_ValidationParms - decode_ValidationParms - encode_ValidationParms - free_ValidationParms - length_ValidationParms copy_Validity - decode_Validity - encode_Validity - free_Validity - length_Validity copy_Version + copy_heim_any + copy_heim_any_set + copy_krb5int32 + copy_krb5uint32 + decode_AD_AND_OR + decode_AD_IF_RELEVANT + decode_AD_INITIAL_VERIFIED_CAS + decode_AD_KDCIssued + decode_AD_LoginAlias + decode_AD_MANDATORY_FOR_KDC + decode_APOptions + decode_AP_REP + decode_AP_REQ + decode_AS_REP + decode_AS_REQ + decode_AUTHDATA_TYPE + decode_AccessDescription + decode_AlgorithmIdentifier + decode_Attribute + decode_AttributeType + decode_AttributeTypeAndValue + decode_AttributeValue + decode_AuthPack + decode_AuthPack_Win2k + decode_Authenticator + decode_AuthorityInfoAccessSyntax + decode_AuthorityKeyIdentifier + decode_AuthorizationData + decode_AuthorizationDataElement + decode_BaseDistance + decode_BasicConstraints + decode_CKSUMTYPE + decode_CMSAttributes + decode_CMSCBCParameter + decode_CMSEncryptedData + decode_CMSIdentifier + decode_CMSRC2CBCParameter + decode_CMSVersion + decode_CRLCertificateList + decode_CRLDistributionPoints + decode_CRLReason + decode_Certificate + decode_CertificateList + decode_CertificateRevocationLists + decode_CertificateSerialNumber + decode_CertificateSet + decode_Certificates + decode_ChangePasswdDataMS + decode_Checksum + decode_ContentEncryptionAlgorithmIdentifier + decode_ContentInfo + decode_ContentType + decode_DHNonce + decode_DHParameter + decode_DHPublicKey + decode_DHRepInfo + decode_DSAParams + decode_DSAPublicKey + decode_DSASigValue + decode_DigestAlgorithmIdentifier + decode_DigestAlgorithmIdentifiers + decode_DigestError + decode_DigestInfo + decode_DigestInit + decode_DigestInitReply + decode_DigestREP + decode_DigestREQ + decode_DigestRepInner + decode_DigestReqInner + decode_DigestRequest + decode_DigestResponse + decode_DigestTypes + decode_DirectoryString + decode_DistributionPoint + decode_DistributionPointName + decode_DistributionPointReasonFlags + decode_DomainParameters + decode_ECDSA_Sig_Value + decode_ECParameters + decode_ECPoint + decode_ENCTYPE + decode_ETYPE_INFO + decode_ETYPE_INFO2 + decode_ETYPE_INFO2_ENTRY + decode_ETYPE_INFO_ENTRY + decode_EncAPRepPart + decode_EncASRepPart + decode_EncKDCRepPart + decode_EncKrbCredPart + decode_EncKrbPrivPart + decode_EncTGSRepPart + decode_EncTicketPart + decode_EncapsulatedContentInfo + decode_EncryptedContent + decode_EncryptedContentInfo + decode_EncryptedData + decode_EncryptedKey + decode_EncryptionKey + decode_EnvelopedData + decode_EtypeList + decode_ExtKeyUsage + decode_Extension + decode_Extensions + decode_ExternalPrincipalIdentifier + decode_ExternalPrincipalIdentifiers + decode_FastOptions + decode_GeneralName + decode_GeneralNames + decode_GeneralSubtree + decode_GeneralSubtrees + decode_HostAddress + decode_HostAddresses + decode_IssuerAndSerialNumber + decode_KDCDHKeyInfo + decode_KDCDHKeyInfo_Win2k + decode_KDCOptions + decode_KDC_REP + decode_KDC_REQ + decode_KDC_REQ_BODY + decode_KDFAlgorithmId + decode_KRB5PrincipalName + decode_KRB5SignedPath + decode_KRB5SignedPathData + decode_KRB_CRED + decode_KRB_ERROR + decode_KRB_PRIV + decode_KRB_SAFE + decode_KRB_SAFE_BODY + decode_KX509_ERROR_CODE + decode_KerberosString + decode_KerberosTime + decode_KeyEncryptionAlgorithmIdentifier + decode_KeyIdentifier + decode_KeyTransRecipientInfo + decode_KeyUsage + decode_KrbCredInfo + decode_KrbFastArmor + decode_KrbFastArmoredRep + decode_KrbFastArmoredReq + decode_KrbFastFinished + decode_KrbFastReq + decode_KrbFastResponse + decode_Kx509Request + decode_Kx509Response + decode_LR_TYPE + decode_LastReq + decode_MESSAGE_TYPE + decode_METHOD_DATA + decode_MS_UPN_SAN + decode_MessageDigest + decode_NAME_TYPE + decode_NTLMInit + decode_NTLMInitReply + decode_NTLMReply + decode_NTLMRequest + decode_NTLMRequest2 + decode_NTLMResponse + decode_Name + decode_NameConstraints + decode_OriginatorInfo + decode_OtherName + decode_PADATA_TYPE + decode_PA_ClientCanonicalized + decode_PA_ClientCanonicalizedNames + decode_PA_DATA + decode_PA_ENC_SAM_RESPONSE_ENC + decode_PA_ENC_TS_ENC + decode_PA_FX_FAST_REPLY + decode_PA_FX_FAST_REQUEST + decode_PA_PAC_REQUEST + decode_PA_PK_AS_REP + decode_PA_PK_AS_REP_BTMM + decode_PA_PK_AS_REP_Win2k + decode_PA_PK_AS_REQ + decode_PA_PK_AS_REQ_Win2k + decode_PA_S4U2Self + decode_PA_SAM_CHALLENGE_2 + decode_PA_SAM_CHALLENGE_2_BODY + decode_PA_SAM_REDIRECT + decode_PA_SAM_RESPONSE_2 + decode_PA_SAM_TYPE + decode_PA_SERVER_REFERRAL_DATA + decode_PA_ServerReferralData + decode_PA_SvrReferralData + decode_PKAuthenticator + decode_PKAuthenticator_Win2k + decode_PKCS12_Attribute + decode_PKCS12_Attributes + decode_PKCS12_AuthenticatedSafe + decode_PKCS12_CertBag + decode_PKCS12_MacData + decode_PKCS12_OctetString + decode_PKCS12_PBEParams + decode_PKCS12_PFX + decode_PKCS12_SafeBag + decode_PKCS12_SafeContents + decode_PKCS8Attributes + decode_PKCS8EncryptedData + decode_PKCS8EncryptedPrivateKeyInfo + decode_PKCS8PrivateKey + decode_PKCS8PrivateKeyAlgorithmIdentifier + decode_PKCS8PrivateKeyInfo + decode_PKCS9_BMPString + decode_PKCS9_friendlyName + decode_PKIXXmppAddr + decode_PROV_SRV_LOCATION + decode_PkinitSP80056AOtherInfo + decode_PkinitSuppPubInfo + decode_Principal + decode_PrincipalName + decode_Principals + decode_ProxyCertInfo + decode_ProxyPolicy + decode_RDNSequence + decode_RSAPrivateKey + decode_RSAPublicKey + decode_Realm + decode_RecipientIdentifier + decode_RecipientInfo + decode_RecipientInfos + decode_RelativeDistinguishedName + decode_ReplyKeyPack + decode_ReplyKeyPack_Win2k + decode_SAMFlags + decode_SignatureAlgorithmIdentifier + decode_SignatureValue + decode_SignedData + decode_SignerIdentifier + decode_SignerInfo + decode_SignerInfos + decode_SubjectKeyIdentifier + decode_SubjectPublicKeyInfo + decode_TBSCRLCertList + decode_TBSCertificate + decode_TD_DH_PARAMETERS + decode_TD_INVALID_CERTIFICATES + decode_TD_TRUSTED_CERTIFIERS + decode_TGS_REP + decode_TGS_REQ + decode_TYPED_DATA + decode_Ticket + decode_TicketFlags + decode_Time + decode_TransitedEncoding + decode_TrustedCA + decode_TrustedCA_Win2k + decode_TypedData + decode_UniqueIdentifier + decode_UnprotectedAttributes + decode_ValidationParms + decode_Validity decode_Version - encode_Version - free_Version - length_Version - heim_any_cmp - initialize_asn1_error_table - initialize_asn1_error_table_r + decode_heim_any + decode_heim_any_set + decode_krb5int32 + decode_krb5uint32 der_copy_bit_string der_copy_bmp_string der_copy_general_string @@ -1284,7 +706,6 @@ EXPORTS der_copy_utctime der_copy_utf8string der_copy_visible_string - _der_timegm der_free_bit_string der_free_bmp_string der_free_general_string @@ -1298,14 +719,6 @@ EXPORTS der_free_universal_string der_free_unsigned der_free_utctime - int2APOptions - int2DigestTypes - int2DistributionPointReasonFlags - int2FastOptions - int2KDCOptions - int2KeyUsage - int2SAMFlags - int2TicketFlags der_free_utf8string der_free_visible_string der_get_bit_string @@ -1333,37 +746,13 @@ EXPORTS der_get_utctime der_get_utf8string der_get_visible_string - copy_heim_any - decode_heim_any - encode_heim_any - free_heim_any - length_heim_any - copy_heim_any_set - decode_heim_any_set - encode_heim_any_set - free_heim_any_set - length_heim_any_set der_heim_bit_string_cmp der_heim_bmp_string_cmp - _heim_der_set_sort - _heim_fix_dce der_heim_integer_cmp - _heim_len_int - _heim_len_unsigned der_heim_octet_string_cmp der_heim_oid_cmp - _heim_time2generalizedtime der_heim_universal_string_cmp - copy_krb5int32 - decode_krb5int32 - encode_krb5int32 - free_krb5int32 - length_krb5int32 - copy_krb5uint32 - decode_krb5uint32 - encode_krb5uint32 - free_krb5uint32 - length_krb5uint32 + der_ia5_string_cmp der_length_bit_string der_length_bmp_string der_length_boolean @@ -1386,166 +775,11 @@ EXPORTS der_match_tag der_match_tag2 der_match_tag_and_length - asn1_oid_id_Userid - asn1_oid_id_aes_128_cbc - asn1_oid_id_aes_192_cbc - asn1_oid_id_aes_256_cbc - asn1_oid_id_at_commonName - asn1_oid_id_at_countryName - asn1_oid_id_at_generationQualifier - asn1_oid_id_at_givenName - asn1_oid_id_at_initials - asn1_oid_id_at_localityName - asn1_oid_id_at_name - asn1_oid_id_at_organizationName - asn1_oid_id_at_organizationalUnitName - asn1_oid_id_at_pseudonym - asn1_oid_id_at_serialNumber - asn1_oid_id_at_stateOrProvinceName - asn1_oid_id_at_streetAddress - asn1_oid_id_at_surname - asn1_oid_id_dhpublicnumber - asn1_oid_id_domainComponent - asn1_oid_id_dsa - asn1_oid_id_dsa_with_sha1 - asn1_oid_id_ecDH - asn1_oid_id_ecMQV - asn1_oid_id_ecPublicKey - asn1_oid_id_ec_group_secp160r1 - asn1_oid_id_ec_group_secp160r2 - asn1_oid_id_ec_group_secp256r1 - asn1_oid_id_ecdsa_with_SHA1 - asn1_oid_id_ecdsa_with_SHA256 - asn1_oid_id_heim_rsa_pkcs1_x509 - asn1_oid_id_ms_cert_enroll_domaincontroller - asn1_oid_id_ms_client_authentication - asn1_oid_id_netscape - asn1_oid_id_netscape_cert_comment - asn1_oid_id_nistAlgorithm - asn1_oid_id_nist_aes_algs - asn1_oid_id_nist_sha_algs - asn1_oid_id_pbeWithSHAAnd128BitRC2_CBC - asn1_oid_id_pbeWithSHAAnd128BitRC4 - asn1_oid_id_pbeWithSHAAnd2_KeyTripleDES_CBC - asn1_oid_id_pbeWithSHAAnd3_KeyTripleDES_CBC - asn1_oid_id_pbeWithSHAAnd40BitRC4 - asn1_oid_id_pbewithSHAAnd40BitRC2_CBC - asn1_oid_id_pkauthdata - asn1_oid_id_pkcs12_bagtypes - asn1_oid_id_pkcs12_certBag - asn1_oid_id_pkcs12_crlBag - asn1_oid_id_pkcs12_keyBag - asn1_oid_id_pkcs12_pkcs8ShroudedKeyBag - asn1_oid_id_pkcs12_safeContentsBag - asn1_oid_id_pkcs12_secretBag - asn1_oid_id_pkcs1_md2WithRSAEncryption - asn1_oid_id_pkcs1_md5WithRSAEncryption - asn1_oid_id_pkcs1_rsaEncryption - asn1_oid_id_pkcs1_sha1WithRSAEncryption - asn1_oid_id_pkcs1_sha256WithRSAEncryption - asn1_oid_id_pkcs1_sha384WithRSAEncryption - asn1_oid_id_pkcs1_sha512WithRSAEncryption - asn1_oid_id_pkcs2_md2 - asn1_oid_id_pkcs2_md4 - asn1_oid_id_pkcs2_md5 - asn1_oid_id_pkcs3_des_ede3_cbc - asn1_oid_id_pkcs3_rc2_cbc - asn1_oid_id_pkcs3_rc4 - asn1_oid_id_pkcs7 - asn1_oid_id_pkcs7_data - asn1_oid_id_pkcs7_digestedData - asn1_oid_id_pkcs7_encryptedData - asn1_oid_id_pkcs7_envelopedData - asn1_oid_id_pkcs7_signedAndEnvelopedData - asn1_oid_id_pkcs7_signedData - asn1_oid_id_pkcs9_contentType - asn1_oid_id_pkcs9_countersignature - asn1_oid_id_pkcs9_emailAddress - asn1_oid_id_pkcs9_messageDigest - asn1_oid_id_pkcs9_signingTime - asn1_oid_id_pkcs_1 - asn1_oid_id_pkcs_12 - asn1_oid_id_pkcs_12PbeIds - asn1_oid_id_pkcs_2 - asn1_oid_id_pkcs_3 - asn1_oid_id_pkcs_9 - asn1_oid_id_pkcs_9_at_certTypes - asn1_oid_id_pkcs_9_at_certTypes_x509 - asn1_oid_id_pkcs_9_at_friendlyName - asn1_oid_id_pkcs_9_at_localKeyId - asn1_oid_id_pkdhkeydata - asn1_oid_id_pkekuoid - asn1_oid_id_pkinit - asn1_oid_id_pkinit_kdf - asn1_oid_id_pkinit_kdf_ah_sha1 - asn1_oid_id_pkinit_kdf_ah_sha256 - asn1_oid_id_pkinit_kdf_ah_sha512 - asn1_oid_id_pkinit_ms_eku - asn1_oid_id_pkinit_ms_san - asn1_oid_id_pkinit_san - asn1_oid_id_pkix - asn1_oid_id_pkix_kp - asn1_oid_id_pkix_kp_OCSPSigning - asn1_oid_id_pkix_kp_clientAuth - asn1_oid_id_pkix_kp_emailProtection - asn1_oid_id_pkix_kp_serverAuth - asn1_oid_id_pkix_kp_timeStamping - asn1_oid_id_pkix_on - asn1_oid_id_pkix_on_dnsSRV - asn1_oid_id_pkix_on_xmppAddr - asn1_oid_id_pkix_pe - asn1_oid_id_pkix_pe_authorityInfoAccess - asn1_oid_id_pkix_pe_proxyCertInfo - asn1_oid_id_pkix_ppl - asn1_oid_id_pkix_ppl_anyLanguage - asn1_oid_id_pkix_ppl_independent - asn1_oid_id_pkix_ppl_inheritAll - asn1_oid_id_pkkdcekuoid - asn1_oid_id_pkrkeydata - asn1_oid_id_rsa_digestAlgorithm - asn1_oid_id_rsa_digest_md2 - asn1_oid_id_rsa_digest_md4 - asn1_oid_id_rsa_digest_md5 - asn1_oid_id_rsadsi_des_ede3_cbc - asn1_oid_id_rsadsi_encalg - asn1_oid_id_rsadsi_rc2_cbc - asn1_oid_id_secsig_sha_1 - asn1_oid_id_sha224 - asn1_oid_id_sha256 - asn1_oid_id_sha384 - asn1_oid_id_sha512 - asn1_oid_id_uspkicommon_card_id - asn1_oid_id_uspkicommon_piv_interim - asn1_oid_id_x509_ce - asn1_oid_id_x509_ce_authorityKeyIdentifier - asn1_oid_id_x509_ce_basicConstraints - asn1_oid_id_x509_ce_cRLDistributionPoints - asn1_oid_id_x509_ce_cRLNumber - asn1_oid_id_x509_ce_cRLReason - asn1_oid_id_x509_ce_certificateIssuer - asn1_oid_id_x509_ce_certificatePolicies - asn1_oid_id_x509_ce_deltaCRLIndicator - asn1_oid_id_x509_ce_extKeyUsage - asn1_oid_id_x509_ce_freshestCRL - asn1_oid_id_x509_ce_holdInstructionCode - asn1_oid_id_x509_ce_inhibitAnyPolicy - asn1_oid_id_x509_ce_invalidityDate - asn1_oid_id_x509_ce_issuerAltName - asn1_oid_id_x509_ce_issuingDistributionPoint - asn1_oid_id_x509_ce_keyUsage - asn1_oid_id_x509_ce_nameConstraints - asn1_oid_id_x509_ce_policyConstraints - asn1_oid_id_x509_ce_policyMappings - asn1_oid_id_x509_ce_privateKeyUsagePeriod - asn1_oid_id_x509_ce_subjectAltName - asn1_oid_id_x509_ce_subjectDirectoryAttributes - asn1_oid_id_x509_ce_subjectKeyIdentifier - asn1_oid_id_x520_at - asn1_oid_id_x9_57 der_parse_heim_oid der_parse_hex_heim_integer der_print_heim_oid der_print_hex_heim_integer + der_printable_string_cmp der_put_bit_string der_put_bmp_string der_put_boolean @@ -1565,3 +799,779 @@ EXPORTS der_put_utctime der_put_utf8string der_put_visible_string + encode_AD_AND_OR + encode_AD_IF_RELEVANT + encode_AD_INITIAL_VERIFIED_CAS + encode_AD_KDCIssued + encode_AD_LoginAlias + encode_AD_MANDATORY_FOR_KDC + encode_APOptions + encode_AP_REP + encode_AP_REQ + encode_AS_REP + encode_AS_REQ + encode_AUTHDATA_TYPE + encode_AccessDescription + encode_AlgorithmIdentifier + encode_Attribute + encode_AttributeType + encode_AttributeTypeAndValue + encode_AttributeValue + encode_AuthPack + encode_AuthPack_Win2k + encode_Authenticator + encode_AuthorityInfoAccessSyntax + encode_AuthorityKeyIdentifier + encode_AuthorizationData + encode_AuthorizationDataElement + encode_BaseDistance + encode_BasicConstraints + encode_CKSUMTYPE + encode_CMSAttributes + encode_CMSCBCParameter + encode_CMSEncryptedData + encode_CMSIdentifier + encode_CMSRC2CBCParameter + encode_CMSVersion + encode_CRLCertificateList + encode_CRLDistributionPoints + encode_CRLReason + encode_Certificate + encode_CertificateList + encode_CertificateRevocationLists + encode_CertificateSerialNumber + encode_CertificateSet + encode_Certificates + encode_ChangePasswdDataMS + encode_Checksum + encode_ContentEncryptionAlgorithmIdentifier + encode_ContentInfo + encode_ContentType + encode_DHNonce + encode_DHParameter + encode_DHPublicKey + encode_DHRepInfo + encode_DSAParams + encode_DSAPublicKey + encode_DSASigValue + encode_DigestAlgorithmIdentifier + encode_DigestAlgorithmIdentifiers + encode_DigestError + encode_DigestInfo + encode_DigestInit + encode_DigestInitReply + encode_DigestREP + encode_DigestREQ + encode_DigestRepInner + encode_DigestReqInner + encode_DigestRequest + encode_DigestResponse + encode_DigestTypes + encode_DirectoryString + encode_DistributionPoint + encode_DistributionPointName + encode_DistributionPointReasonFlags + encode_DomainParameters + encode_ECDSA_Sig_Value + encode_ECParameters + encode_ECPoint + encode_ENCTYPE + encode_ETYPE_INFO + encode_ETYPE_INFO2 + encode_ETYPE_INFO2_ENTRY + encode_ETYPE_INFO_ENTRY + encode_EncAPRepPart + encode_EncASRepPart + encode_EncKDCRepPart + encode_EncKrbCredPart + encode_EncKrbPrivPart + encode_EncTGSRepPart + encode_EncTicketPart + encode_EncapsulatedContentInfo + encode_EncryptedContent + encode_EncryptedContentInfo + encode_EncryptedData + encode_EncryptedKey + encode_EncryptionKey + encode_EnvelopedData + encode_EtypeList + encode_ExtKeyUsage + encode_Extension + encode_Extensions + encode_ExternalPrincipalIdentifier + encode_ExternalPrincipalIdentifiers + encode_FastOptions + encode_GeneralName + encode_GeneralNames + encode_GeneralSubtree + encode_GeneralSubtrees + encode_HostAddress + encode_HostAddresses + encode_IssuerAndSerialNumber + encode_KDCDHKeyInfo + encode_KDCDHKeyInfo_Win2k + encode_KDCOptions + encode_KDC_REP + encode_KDC_REQ + encode_KDC_REQ_BODY + encode_KDFAlgorithmId + encode_KRB5PrincipalName + encode_KRB5SignedPath + encode_KRB5SignedPathData + encode_KRB_CRED + encode_KRB_ERROR + encode_KRB_PRIV + encode_KRB_SAFE + encode_KRB_SAFE_BODY + encode_KX509_ERROR_CODE + encode_KerberosString + encode_KerberosTime + encode_KeyEncryptionAlgorithmIdentifier + encode_KeyIdentifier + encode_KeyTransRecipientInfo + encode_KeyUsage + encode_KrbCredInfo + encode_KrbFastArmor + encode_KrbFastArmoredRep + encode_KrbFastArmoredReq + encode_KrbFastFinished + encode_KrbFastReq + encode_KrbFastResponse + encode_Kx509Request + encode_Kx509Response + encode_LR_TYPE + encode_LastReq + encode_MESSAGE_TYPE + encode_METHOD_DATA + encode_MS_UPN_SAN + encode_MessageDigest + encode_NAME_TYPE + encode_NTLMInit + encode_NTLMInitReply + encode_NTLMReply + encode_NTLMRequest + encode_NTLMRequest2 + encode_NTLMResponse + encode_Name + encode_NameConstraints + encode_OriginatorInfo + encode_OtherName + encode_PADATA_TYPE + encode_PA_ClientCanonicalized + encode_PA_ClientCanonicalizedNames + encode_PA_DATA + encode_PA_ENC_SAM_RESPONSE_ENC + encode_PA_ENC_TS_ENC + encode_PA_FX_FAST_REPLY + encode_PA_FX_FAST_REQUEST + encode_PA_PAC_REQUEST + encode_PA_PK_AS_REP + encode_PA_PK_AS_REP_BTMM + encode_PA_PK_AS_REP_Win2k + encode_PA_PK_AS_REQ + encode_PA_PK_AS_REQ_Win2k + encode_PA_S4U2Self + encode_PA_SAM_CHALLENGE_2 + encode_PA_SAM_CHALLENGE_2_BODY + encode_PA_SAM_REDIRECT + encode_PA_SAM_RESPONSE_2 + encode_PA_SAM_TYPE + encode_PA_SERVER_REFERRAL_DATA + encode_PA_ServerReferralData + encode_PA_SvrReferralData + encode_PKAuthenticator + encode_PKAuthenticator_Win2k + encode_PKCS12_Attribute + encode_PKCS12_Attributes + encode_PKCS12_AuthenticatedSafe + encode_PKCS12_CertBag + encode_PKCS12_MacData + encode_PKCS12_OctetString + encode_PKCS12_PBEParams + encode_PKCS12_PFX + encode_PKCS12_SafeBag + encode_PKCS12_SafeContents + encode_PKCS8Attributes + encode_PKCS8EncryptedData + encode_PKCS8EncryptedPrivateKeyInfo + encode_PKCS8PrivateKey + encode_PKCS8PrivateKeyAlgorithmIdentifier + encode_PKCS8PrivateKeyInfo + encode_PKCS9_BMPString + encode_PKCS9_friendlyName + encode_PKIXXmppAddr + encode_PROV_SRV_LOCATION + encode_PkinitSP80056AOtherInfo + encode_PkinitSuppPubInfo + encode_Principal + encode_PrincipalName + encode_Principals + encode_ProxyCertInfo + encode_ProxyPolicy + encode_RDNSequence + encode_RSAPrivateKey + encode_RSAPublicKey + encode_Realm + encode_RecipientIdentifier + encode_RecipientInfo + encode_RecipientInfos + encode_RelativeDistinguishedName + encode_ReplyKeyPack + encode_ReplyKeyPack_Win2k + encode_SAMFlags + encode_SignatureAlgorithmIdentifier + encode_SignatureValue + encode_SignedData + encode_SignerIdentifier + encode_SignerInfo + encode_SignerInfos + encode_SubjectKeyIdentifier + encode_SubjectPublicKeyInfo + encode_TBSCRLCertList + encode_TBSCertificate + encode_TD_DH_PARAMETERS + encode_TD_INVALID_CERTIFICATES + encode_TD_TRUSTED_CERTIFIERS + encode_TGS_REP + encode_TGS_REQ + encode_TYPED_DATA + encode_Ticket + encode_TicketFlags + encode_Time + encode_TransitedEncoding + encode_TrustedCA + encode_TrustedCA_Win2k + encode_TypedData + encode_UniqueIdentifier + encode_UnprotectedAttributes + encode_ValidationParms + encode_Validity + encode_Version + encode_heim_any + encode_heim_any_set + encode_krb5int32 + encode_krb5uint32 + free_AD_AND_OR + free_AD_IF_RELEVANT + free_AD_INITIAL_VERIFIED_CAS + free_AD_KDCIssued + free_AD_LoginAlias + free_AD_MANDATORY_FOR_KDC + free_APOptions + free_AP_REP + free_AP_REQ + free_AS_REP + free_AS_REQ + free_AUTHDATA_TYPE + free_AccessDescription + free_AlgorithmIdentifier + free_Attribute + free_AttributeType + free_AttributeTypeAndValue + free_AttributeValue + free_AuthPack + free_AuthPack_Win2k + free_Authenticator + free_AuthorityInfoAccessSyntax + free_AuthorityKeyIdentifier + free_AuthorizationData + free_AuthorizationDataElement + free_BaseDistance + free_BasicConstraints + free_CKSUMTYPE + free_CMSAttributes + free_CMSCBCParameter + free_CMSEncryptedData + free_CMSIdentifier + free_CMSRC2CBCParameter + free_CMSVersion + free_CRLCertificateList + free_CRLDistributionPoints + free_CRLReason + free_Certificate + free_CertificateList + free_CertificateRevocationLists + free_CertificateSerialNumber + free_CertificateSet + free_Certificates + free_ChangePasswdDataMS + free_Checksum + free_ContentEncryptionAlgorithmIdentifier + free_ContentInfo + free_ContentType + free_DHNonce + free_DHParameter + free_DHPublicKey + free_DHRepInfo + free_DSAParams + free_DSAPublicKey + free_DSASigValue + free_DigestAlgorithmIdentifier + free_DigestAlgorithmIdentifiers + free_DigestError + free_DigestInfo + free_DigestInit + free_DigestInitReply + free_DigestREP + free_DigestREQ + free_DigestRepInner + free_DigestReqInner + free_DigestRequest + free_DigestResponse + free_DigestTypes + free_DirectoryString + free_DistributionPoint + free_DistributionPointName + free_DistributionPointReasonFlags + free_DomainParameters + free_ECDSA_Sig_Value + free_ECParameters + free_ECPoint + free_ENCTYPE + free_ETYPE_INFO + free_ETYPE_INFO2 + free_ETYPE_INFO2_ENTRY + free_ETYPE_INFO_ENTRY + free_EncAPRepPart + free_EncASRepPart + free_EncKDCRepPart + free_EncKrbCredPart + free_EncKrbPrivPart + free_EncTGSRepPart + free_EncTicketPart + free_EncapsulatedContentInfo + free_EncryptedContent + free_EncryptedContentInfo + free_EncryptedData + free_EncryptedKey + free_EncryptionKey + free_EnvelopedData + free_EtypeList + free_ExtKeyUsage + free_Extension + free_Extensions + free_ExternalPrincipalIdentifier + free_ExternalPrincipalIdentifiers + free_FastOptions + free_GeneralName + free_GeneralNames + free_GeneralSubtree + free_GeneralSubtrees + free_HostAddress + free_HostAddresses + free_IssuerAndSerialNumber + free_KDCDHKeyInfo + free_KDCDHKeyInfo_Win2k + free_KDCOptions + free_KDC_REP + free_KDC_REQ + free_KDC_REQ_BODY + free_KDFAlgorithmId + free_KRB5PrincipalName + free_KRB5SignedPath + free_KRB5SignedPathData + free_KRB_CRED + free_KRB_ERROR + free_KRB_PRIV + free_KRB_SAFE + free_KRB_SAFE_BODY + free_KX509_ERROR_CODE + free_KerberosString + free_KerberosTime + free_KeyEncryptionAlgorithmIdentifier + free_KeyIdentifier + free_KeyTransRecipientInfo + free_KeyUsage + free_KrbCredInfo + free_KrbFastArmor + free_KrbFastArmoredRep + free_KrbFastArmoredReq + free_KrbFastFinished + free_KrbFastReq + free_KrbFastResponse + free_Kx509Request + free_Kx509Response + free_LR_TYPE + free_LastReq + free_MESSAGE_TYPE + free_METHOD_DATA + free_MS_UPN_SAN + free_MessageDigest + free_NAME_TYPE + free_NTLMInit + free_NTLMInitReply + free_NTLMReply + free_NTLMRequest + free_NTLMRequest2 + free_NTLMResponse + free_Name + free_NameConstraints + free_OriginatorInfo + free_OtherName + free_PADATA_TYPE + free_PA_ClientCanonicalized + free_PA_ClientCanonicalizedNames + free_PA_DATA + free_PA_ENC_SAM_RESPONSE_ENC + free_PA_ENC_TS_ENC + free_PA_FX_FAST_REPLY + free_PA_FX_FAST_REQUEST + free_PA_PAC_REQUEST + free_PA_PK_AS_REP + free_PA_PK_AS_REP_BTMM + free_PA_PK_AS_REP_Win2k + free_PA_PK_AS_REQ + free_PA_PK_AS_REQ_Win2k + free_PA_S4U2Self + free_PA_SAM_CHALLENGE_2 + free_PA_SAM_CHALLENGE_2_BODY + free_PA_SAM_REDIRECT + free_PA_SAM_RESPONSE_2 + free_PA_SAM_TYPE + free_PA_SERVER_REFERRAL_DATA + free_PA_ServerReferralData + free_PA_SvrReferralData + free_PKAuthenticator + free_PKAuthenticator_Win2k + free_PKCS12_Attribute + free_PKCS12_Attributes + free_PKCS12_AuthenticatedSafe + free_PKCS12_CertBag + free_PKCS12_MacData + free_PKCS12_OctetString + free_PKCS12_PBEParams + free_PKCS12_PFX + free_PKCS12_SafeBag + free_PKCS12_SafeContents + free_PKCS8Attributes + free_PKCS8EncryptedData + free_PKCS8EncryptedPrivateKeyInfo + free_PKCS8PrivateKey + free_PKCS8PrivateKeyAlgorithmIdentifier + free_PKCS8PrivateKeyInfo + free_PKCS9_BMPString + free_PKCS9_friendlyName + free_PKIXXmppAddr + free_PROV_SRV_LOCATION + free_PkinitSP80056AOtherInfo + free_PkinitSuppPubInfo + free_Principal + free_PrincipalName + free_Principals + free_ProxyCertInfo + free_ProxyPolicy + free_RDNSequence + free_RSAPrivateKey + free_RSAPublicKey + free_Realm + free_RecipientIdentifier + free_RecipientInfo + free_RecipientInfos + free_RelativeDistinguishedName + free_ReplyKeyPack + free_ReplyKeyPack_Win2k + free_SAMFlags + free_SignatureAlgorithmIdentifier + free_SignatureValue + free_SignedData + free_SignerIdentifier + free_SignerInfo + free_SignerInfos + free_SubjectKeyIdentifier + free_SubjectPublicKeyInfo + free_TBSCRLCertList + free_TBSCertificate + free_TD_DH_PARAMETERS + free_TD_INVALID_CERTIFICATES + free_TD_TRUSTED_CERTIFIERS + free_TGS_REP + free_TGS_REQ + free_TYPED_DATA + free_Ticket + free_TicketFlags + free_Time + free_TransitedEncoding + free_TrustedCA + free_TrustedCA_Win2k + free_TypedData + free_UniqueIdentifier + free_UnprotectedAttributes + free_ValidationParms + free_Validity + free_Version + free_heim_any + free_heim_any_set + free_krb5int32 + free_krb5uint32 + heim_any_cmp + initialize_asn1_error_table + initialize_asn1_error_table_r + int2APOptions + int2DigestTypes + int2DistributionPointReasonFlags + int2FastOptions + int2KDCOptions + int2KeyUsage + int2SAMFlags + int2TicketFlags + length_AD_AND_OR + length_AD_IF_RELEVANT + length_AD_INITIAL_VERIFIED_CAS + length_AD_KDCIssued + length_AD_LoginAlias + length_AD_MANDATORY_FOR_KDC + length_APOptions + length_AP_REP + length_AP_REQ + length_AS_REP + length_AS_REQ + length_AUTHDATA_TYPE + length_AccessDescription + length_AlgorithmIdentifier + length_Attribute + length_AttributeType + length_AttributeTypeAndValue + length_AttributeValue + length_AuthPack + length_AuthPack_Win2k + length_Authenticator + length_AuthorityInfoAccessSyntax + length_AuthorityKeyIdentifier + length_AuthorizationData + length_AuthorizationDataElement + length_BaseDistance + length_BasicConstraints + length_CKSUMTYPE + length_CMSAttributes + length_CMSCBCParameter + length_CMSEncryptedData + length_CMSIdentifier + length_CMSRC2CBCParameter + length_CMSVersion + length_CRLCertificateList + length_CRLDistributionPoints + length_CRLReason + length_Certificate + length_CertificateList + length_CertificateRevocationLists + length_CertificateSerialNumber + length_CertificateSet + length_Certificates + length_ChangePasswdDataMS + length_Checksum + length_ContentEncryptionAlgorithmIdentifier + length_ContentInfo + length_ContentType + length_DHNonce + length_DHParameter + length_DHPublicKey + length_DHRepInfo + length_DSAParams + length_DSAPublicKey + length_DSASigValue + length_DigestAlgorithmIdentifier + length_DigestAlgorithmIdentifiers + length_DigestError + length_DigestInfo + length_DigestInit + length_DigestInitReply + length_DigestREP + length_DigestREQ + length_DigestRepInner + length_DigestReqInner + length_DigestRequest + length_DigestResponse + length_DigestTypes + length_DirectoryString + length_DistributionPoint + length_DistributionPointName + length_DistributionPointReasonFlags + length_DomainParameters + length_ECDSA_Sig_Value + length_ECParameters + length_ECPoint + length_ENCTYPE + length_ETYPE_INFO + length_ETYPE_INFO2 + length_ETYPE_INFO2_ENTRY + length_ETYPE_INFO_ENTRY + length_EncAPRepPart + length_EncASRepPart + length_EncKDCRepPart + length_EncKrbCredPart + length_EncKrbPrivPart + length_EncTGSRepPart + length_EncTicketPart + length_EncapsulatedContentInfo + length_EncryptedContent + length_EncryptedContentInfo + length_EncryptedData + length_EncryptedKey + length_EncryptionKey + length_EnvelopedData + length_EtypeList + length_ExtKeyUsage + length_Extension + length_Extensions + length_ExternalPrincipalIdentifier + length_ExternalPrincipalIdentifiers + length_FastOptions + length_GeneralName + length_GeneralNames + length_GeneralSubtree + length_GeneralSubtrees + length_HostAddress + length_HostAddresses + length_IssuerAndSerialNumber + length_KDCDHKeyInfo + length_KDCDHKeyInfo_Win2k + length_KDCOptions + length_KDC_REP + length_KDC_REQ + length_KDC_REQ_BODY + length_KDFAlgorithmId + length_KRB5PrincipalName + length_KRB5SignedPath + length_KRB5SignedPathData + length_KRB_CRED + length_KRB_ERROR + length_KRB_PRIV + length_KRB_SAFE + length_KRB_SAFE_BODY + length_KX509_ERROR_CODE + length_KerberosString + length_KerberosTime + length_KeyEncryptionAlgorithmIdentifier + length_KeyIdentifier + length_KeyTransRecipientInfo + length_KeyUsage + length_KrbCredInfo + length_KrbFastArmor + length_KrbFastArmoredRep + length_KrbFastArmoredReq + length_KrbFastFinished + length_KrbFastReq + length_KrbFastResponse + length_Kx509Request + length_Kx509Response + length_LR_TYPE + length_LastReq + length_MESSAGE_TYPE + length_METHOD_DATA + length_MS_UPN_SAN + length_MessageDigest + length_NAME_TYPE + length_NTLMInit + length_NTLMInitReply + length_NTLMReply + length_NTLMRequest + length_NTLMRequest2 + length_NTLMResponse + length_Name + length_NameConstraints + length_OriginatorInfo + length_OtherName + length_PADATA_TYPE + length_PA_ClientCanonicalized + length_PA_ClientCanonicalizedNames + length_PA_DATA + length_PA_ENC_SAM_RESPONSE_ENC + length_PA_ENC_TS_ENC + length_PA_FX_FAST_REPLY + length_PA_FX_FAST_REQUEST + length_PA_PAC_REQUEST + length_PA_PK_AS_REP + length_PA_PK_AS_REP_BTMM + length_PA_PK_AS_REP_Win2k + length_PA_PK_AS_REQ + length_PA_PK_AS_REQ_Win2k + length_PA_S4U2Self + length_PA_SAM_CHALLENGE_2 + length_PA_SAM_CHALLENGE_2_BODY + length_PA_SAM_REDIRECT + length_PA_SAM_RESPONSE_2 + length_PA_SAM_TYPE + length_PA_SERVER_REFERRAL_DATA + length_PA_ServerReferralData + length_PA_SvrReferralData + length_PKAuthenticator + length_PKAuthenticator_Win2k + length_PKCS12_Attribute + length_PKCS12_Attributes + length_PKCS12_AuthenticatedSafe + length_PKCS12_CertBag + length_PKCS12_MacData + length_PKCS12_OctetString + length_PKCS12_PBEParams + length_PKCS12_PFX + length_PKCS12_SafeBag + length_PKCS12_SafeContents + length_PKCS8Attributes + length_PKCS8EncryptedData + length_PKCS8EncryptedPrivateKeyInfo + length_PKCS8PrivateKey + length_PKCS8PrivateKeyAlgorithmIdentifier + length_PKCS8PrivateKeyInfo + length_PKCS9_BMPString + length_PKCS9_friendlyName + length_PKIXXmppAddr + length_PROV_SRV_LOCATION + length_PkinitSP80056AOtherInfo + length_PkinitSuppPubInfo + length_Principal + length_PrincipalName + length_Principals + length_ProxyCertInfo + length_ProxyPolicy + length_RDNSequence + length_RSAPrivateKey + length_RSAPublicKey + length_Realm + length_RecipientIdentifier + length_RecipientInfo + length_RecipientInfos + length_RelativeDistinguishedName + length_ReplyKeyPack + length_ReplyKeyPack_Win2k + length_SAMFlags + length_SignatureAlgorithmIdentifier + length_SignatureValue + length_SignedData + length_SignerIdentifier + length_SignerInfo + length_SignerInfos + length_SubjectKeyIdentifier + length_SubjectPublicKeyInfo + length_TBSCRLCertList + length_TBSCertificate + length_TD_DH_PARAMETERS + length_TD_INVALID_CERTIFICATES + length_TD_TRUSTED_CERTIFIERS + length_TGS_REP + length_TGS_REQ + length_TYPED_DATA + length_Ticket + length_TicketFlags + length_Time + length_TransitedEncoding + length_TrustedCA + length_TrustedCA_Win2k + length_TypedData + length_UniqueIdentifier + length_UnprotectedAttributes + length_ValidationParms + length_Validity + length_Version + length_heim_any + length_heim_any_set + length_krb5int32 + length_krb5uint32 + remove_AuthorizationData + remove_CRLDistributionPoints + remove_DigestAlgorithmIdentifiers + remove_ETYPE_INFO + remove_ETYPE_INFO2 + remove_Extensions + remove_GeneralNames + remove_METHOD_DATA + remove_Principals From 6d4ac563d520a62f78866f199aa9a7a28e3073a9 Mon Sep 17 00:00:00 2001 From: Asanka Herath Date: Tue, 24 Aug 2010 04:29:08 -0400 Subject: [PATCH 16/41] Windows: Build hxtool with the correct options --- lib/hx509/NTMakefile | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/lib/hx509/NTMakefile b/lib/hx509/NTMakefile index 77edf6446..ac978c2db 100644 --- a/lib/hx509/NTMakefile +++ b/lib/hx509/NTMakefile @@ -195,7 +195,7 @@ $(OBJ)\hxtool-commands.c $(OBJ)\hxtool-commands.h: hxtool-commands.in $(SLC) $(SLC) hxtool-commands.in cd $(SRCDIR) -$(BINDIR)\hxtool.exe: $(OBJ)\hxtool.obj $(OBJ)\hxtool-commands.obj $(LIBHEIMDAL) $(OBJ)\hxtool-version.res +$(BINDIR)\hxtool.exe: $(OBJ)\tool\hxtool.obj $(OBJ)\tool\hxtool-commands.obj $(LIBHEIMDAL) $(OBJ)\hxtool-version.res $(EXECONLINK) $(LIBHEIMDAL) $(LIBROKEN) $(LIBSL) $(LIBVERS) $(LIBCOMERR) $(EXEPREP) @@ -228,7 +228,21 @@ $(OBJ)\sel-lex.c: sel-lex.l all:: $(INCFILES) $(LIBHX509) +prep:: mktooldir + +mktooldir: +! if !exist($(OBJ)\tool) + $(MKDIR) $(OBJ)\tool +! endif + all-tools:: $(BINDIR)\hxtool.exe clean:: -$(RM) $(BINDIR)\hxtool.exe + -$(RM) $(OBJ)\tool\*.* + +{}.c{$(OBJ)\tool}.obj:: + $(C2OBJ_C) /Fd$(OBJ)\tool\ /Fo$(OBJ)\tool\ /MP /UASN1_LIB $< + +{$(OBJ)}.c{$(OBJ)\tool}.obj:: + $(C2OBJ_C) /Fd$(OBJ)\tool\ /Fo$(OBJ)\tool\ /MP /UASN1_LIB $< From 4925fb863c89434e819ee52134a20565b59a9a12 Mon Sep 17 00:00:00 2001 From: Asanka Herath Date: Tue, 24 Aug 2010 04:29:37 -0400 Subject: [PATCH 17/41] Address of an imported symbol is not always a constant On Windows, the address of a symbol imported from a DLL is not considered a constant. Therefore, it can't be used to initialized static data. --- lib/krb5/test_pknistkdf.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/lib/krb5/test_pknistkdf.c b/lib/krb5/test_pknistkdf.c index 6e2da54fc..33eb45ba9 100644 --- a/lib/krb5/test_pknistkdf.c +++ b/lib/krb5/test_pknistkdf.c @@ -52,7 +52,11 @@ struct testcase { } tests[] = { /* 0 */ { - &asn1_oid_id_pkinit_kdf_ah_sha1, /* AlgorithmIdentifier */ + NULL, /* AlgorithmIdentifier */ + /* == &asn1_oid_id_pkinit_kdf_ah_sha1. Addresses of exported + * symbols are not considered constant on all platforms + * (Windows). So we set it in main() below. */ + { /* Z */ 256, "\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00" @@ -260,6 +264,8 @@ main(int argc, char **argv) if (ret) errx (1, "krb5_init_context failed: %d", ret); + tests[0].oid = &asn1_oid_id_pkinit_kdf_ah_sha1; + for (i = 0; i < sizeof(tests)/sizeof(tests[0]); i++) test_dh2key(context, i, &tests[i]); From 96dadaaeffcb3b3115ac76ac2f4d7d2475bf1e0a Mon Sep 17 00:00:00 2001 From: Asanka Herath Date: Tue, 24 Aug 2010 04:31:15 -0400 Subject: [PATCH 18/41] Windows: Decorate krb5_cc_copy_creds export definition --- lib/krb5/libkrb5-exports.def.in | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/krb5/libkrb5-exports.def.in b/lib/krb5/libkrb5-exports.def.in index 4cad0749e..3ee5e1a6e 100644 --- a/lib/krb5/libkrb5-exports.def.in +++ b/lib/krb5/libkrb5-exports.def.in @@ -88,7 +88,7 @@ EXPORTS krb5_cc_clear_mcred krb5_cc_close krb5_cc_copy_cache - krb5_cc_copy_creds + krb5_cc_copy_creds ;! krb5_cc_copy_match_f krb5_cc_default krb5_cc_default_name From c372b0aa3761557a52dded40adda0415c34f291c Mon Sep 17 00:00:00 2001 From: Asanka Herath Date: Tue, 24 Aug 2010 06:03:42 -0400 Subject: [PATCH 19/41] Windows: Fix exports for libgssapi --- lib/gssapi/libgssapi-exports.def | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/lib/gssapi/libgssapi-exports.def b/lib/gssapi/libgssapi-exports.def index 11daffdd0..7568c4f73 100644 --- a/lib/gssapi/libgssapi-exports.def +++ b/lib/gssapi/libgssapi-exports.def @@ -3,7 +3,8 @@ EXPORTS __gss_ntlm_mechanism_oid_desc __gss_spnego_mechanism_oid_desc __gss_sasl_digest_md5_mechanism_oid_desc - __gss_c_nt_anonymous_oid_desc + __gss_c_nt_anonymous_oid_desc ;! +;! __gss_c_nt_anonymous __gss_c_nt_export_name_oid_desc __gss_c_nt_hostbased_service_oid_desc __gss_c_nt_hostbased_service_x_oid_desc @@ -31,9 +32,11 @@ EXPORTS gss_duplicate_name gss_duplicate_oid gss_encapsulate_token + gss_export_cred gss_export_name gss_export_sec_context gss_get_mic + gss_import_cred gss_import_name gss_import_sec_context gss_indicate_mechs @@ -44,8 +47,7 @@ EXPORTS gss_inquire_cred_by_oid gss_inquire_mechs_for_name gss_inquire_names_for_mech - gss_inquire_sec_context_by_oid - gss_inquire_sec_context_by_oid + gss_inquire_sec_context_by_oid ;! gss_krb5_ccache_name gss_krb5_copy_ccache gss_krb5_export_lucid_sec_context From fbbfbdda32ccbd0d1e23e9ecc040f6869428de25 Mon Sep 17 00:00:00 2001 From: Asanka Herath Date: Tue, 24 Aug 2010 06:04:28 -0400 Subject: [PATCH 20/41] Windows: Fix exports for libhdb --- lib/hdb/libhdb-exports.def | 25 +++++++++++++++---------- 1 file changed, 15 insertions(+), 10 deletions(-) diff --git a/lib/hdb/libhdb-exports.def b/lib/hdb/libhdb-exports.def index 008088457..4a93f7f92 100644 --- a/lib/hdb/libhdb-exports.def +++ b/lib/hdb/libhdb-exports.def @@ -41,6 +41,7 @@ EXPORTS hdb_generate_key_set_password hdb_get_dbinfo hdb_init_db + hdb_interface_version DATA hdb_key2principal hdb_list_builtin hdb_lock @@ -65,31 +66,35 @@ EXPORTS hdb_value2entry_alias hdb_write_master_key length_hdb_keyset + initialize_hdb_error_table_r hdb_kt_ops ; some random bits needed for libkadm + HDBFlags2int + asn1_HDBFlags_units copy_Event copy_HDB_extensions copy_Key copy_Salt + decode_HDB_Ext_Aliases + decode_HDB_Ext_PKINIT_acl decode_HDB_extension + decode_Key encode_HDB_Ext_Aliases + encode_HDB_Ext_PKINIT_acl + encode_HDB_extension + encode_Key free_Event + free_HDB_Ext_Aliases + free_HDB_Ext_PKINIT_acl free_HDB_extension free_HDB_extensions free_Key + free_Salt free_hdb_entry - asn1_HDBFlags_units - HDBFlags2int int2HDBFlags length_HDB_Ext_Aliases - decode_HDB_Ext_PKINIT_acl - free_HDB_Ext_PKINIT_acl - decode_HDB_Ext_Aliases - free_HDB_Ext_Aliases - length_HDB_extension - encode_HDB_extension length_HDB_Ext_PKINIT_acl - encode_HDB_Ext_PKINIT_acl - + length_HDB_extension + length_Key From 77c91f86a0bfa1f7450e4c52996b5e0163111c75 Mon Sep 17 00:00:00 2001 From: Asanka Herath Date: Tue, 24 Aug 2010 06:05:04 -0400 Subject: [PATCH 21/41] Windows: Remove test_hdbkeys from test-run test_hdbkeys is not a standalone test app. --- lib/hdb/NTMakefile | 1 - 1 file changed, 1 deletion(-) diff --git a/lib/hdb/NTMakefile b/lib/hdb/NTMakefile index 4b1acea84..3387fb610 100644 --- a/lib/hdb/NTMakefile +++ b/lib/hdb/NTMakefile @@ -176,7 +176,6 @@ $(OBJ)\test_hdbkeys.exe: $(OBJ)\test_hdbkeys.obj $(LIBHDB) $(LIBHEIMDAL) $(LIBRO test-run: cd $(OBJ) test_dbinfo.exe - test_hdbkeys.exe cd $(SRCDIR) !ifdef OPENLDAP_INC From 48017d046a16f356b3516df5210a42c78a196563 Mon Sep 17 00:00:00 2001 From: Asanka Herath Date: Wed, 25 Aug 2010 00:20:00 -0400 Subject: [PATCH 22/41] Windows: Build test binaries for kadm5 --- lib/kadm5/NTMakefile | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/lib/kadm5/NTMakefile b/lib/kadm5/NTMakefile index 3ec50ff9b..e83b8c6b2 100644 --- a/lib/kadm5/NTMakefile +++ b/lib/kadm5/NTMakefile @@ -237,12 +237,21 @@ test-binaries: \ $(OBJ)\test_pw_quality.exe \ $(OBJ)\sample_passwd_check.dll -$(OBJ)\default_keys.exe: $(OBJ)\default_keys.obj +$(OBJ)\default_keys.exe: $(OBJ)\default_keys.obj $(LIBHEIMDAL) $(LIBROKEN) $(LIBHDB) $(EXECONLINK) $(EXEPREP_NODIST) -$(OBJ)\sample_passwd_check.dll: $(OBJ)\sample_passwd_check.obj - $(DLLGUILINK) #TODO: Define exports +$(OBJ)\test_pw_quality.exe: $(OBJ)\test_pw_quality.obj \ + $(LIBROKEN) $(LIBKADM5SRV) $(LIBVERS) $(LIBHEIMDAL) + $(EXECONLINK) + $(EXEPREP_NODIST) + +$(OBJ)\sample_passwd_check.dll: $(OBJ)\sample_passwd_check.obj $(LIBHEIMDAL) + $(DLLGUILINK) /DEF:<< +EXPORTS + version DATA + check_length +<< $(DLLPREP_NODIST) test-run: From e1136ba11234a04cd16440b5f92e8b8eba8d5095 Mon Sep 17 00:00:00 2001 From: Asanka Herath Date: Wed, 25 Aug 2010 11:11:47 -0400 Subject: [PATCH 23/41] Windows: Annotate symbols for libkadm5srv --- lib/kadm5/libkadm5srv-exports.def | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/lib/kadm5/libkadm5srv-exports.def b/lib/kadm5/libkadm5srv-exports.def index ed1fe514a..ad5fa37e9 100644 --- a/lib/kadm5/libkadm5srv-exports.def +++ b/lib/kadm5/libkadm5srv-exports.def @@ -1,6 +1,6 @@ EXPORTS -; kadm5_ad_init_with_password -; kadm5_ad_init_with_password_ctx +;! kadm5_ad_init_with_password +;! kadm5_ad_init_with_password_ctx kadm5_add_passwd_quality_verifier kadm5_check_password_quality kadm5_chpass_principal @@ -41,8 +41,8 @@ EXPORTS kadm5_s_init_with_creds kadm5_s_chpass_principal_cond kadm5_log_set_version -; kadm5_log_signal_socket - kadm5_log_signal_socket_info +;! kadm5_log_signal_socket + kadm5_log_signal_socket_info ;! kadm5_log_previous kadm5_log_goto_end kadm5_log_foreach From 4b8c523d284c8819d0c001abf1d3ed4aa95954b1 Mon Sep 17 00:00:00 2001 From: Asanka Herath Date: Wed, 25 Aug 2010 11:14:53 -0400 Subject: [PATCH 24/41] Fix line endings --- lib/hcrypto/libtommath/libtommath.dsp | 1144 ++++++++++++------------- lib/hcrypto/libtommath/logs/README | 24 +- 2 files changed, 584 insertions(+), 584 deletions(-) diff --git a/lib/hcrypto/libtommath/libtommath.dsp b/lib/hcrypto/libtommath/libtommath.dsp index 71ac2433e..6b8908f07 100644 --- a/lib/hcrypto/libtommath/libtommath.dsp +++ b/lib/hcrypto/libtommath/libtommath.dsp @@ -1,572 +1,572 @@ -# Microsoft Developer Studio Project File - Name="libtommath" - Package Owner=<4> -# Microsoft Developer Studio Generated Build File, Format Version 6.00 -# ** DO NOT EDIT ** - -# TARGTYPE "Win32 (x86) Static Library" 0x0104 - -CFG=libtommath - Win32 Debug -!MESSAGE This is not a valid makefile. To build this project using NMAKE, -!MESSAGE use the Export Makefile command and run -!MESSAGE -!MESSAGE NMAKE /f "libtommath.mak". -!MESSAGE -!MESSAGE You can specify a configuration when running NMAKE -!MESSAGE by defining the macro CFG on the command line. For example: -!MESSAGE -!MESSAGE NMAKE /f "libtommath.mak" CFG="libtommath - Win32 Debug" -!MESSAGE -!MESSAGE Possible choices for configuration are: -!MESSAGE -!MESSAGE "libtommath - Win32 Release" (based on "Win32 (x86) Static Library") -!MESSAGE "libtommath - Win32 Debug" (based on "Win32 (x86) Static Library") -!MESSAGE - -# Begin Project -# PROP AllowPerConfigDependencies 0 -# PROP Scc_ProjName "libtommath" -# PROP Scc_LocalPath "." -CPP=cl.exe -RSC=rc.exe - -!IF "$(CFG)" == "libtommath - Win32 Release" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 0 -# PROP BASE Output_Dir "Release" -# PROP BASE Intermediate_Dir "Release" -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 0 -# PROP Output_Dir "Release" -# PROP Intermediate_Dir "Release" -# PROP Target_Dir "" -# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_MBCS" /D "_LIB" /YX /FD /c -# ADD CPP /nologo /W3 /GX /O2 /I "." /D "WIN32" /D "NDEBUG" /D "_MBCS" /D "_LIB" /YX /FD /c -# ADD BASE RSC /l 0x409 /d "NDEBUG" -# ADD RSC /l 0x409 /d "NDEBUG" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LIB32=link.exe -lib -# ADD BASE LIB32 /nologo -# ADD LIB32 /nologo /out:"Release\tommath.lib" - -!ELSEIF "$(CFG)" == "libtommath - Win32 Debug" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 1 -# PROP BASE Output_Dir "Debug" -# PROP BASE Intermediate_Dir "Debug" -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 1 -# PROP Output_Dir "Debug" -# PROP Intermediate_Dir "Debug" -# PROP Target_Dir "" -# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /YX /FD /GZ /c -# ADD CPP /nologo /W3 /Gm /GX /ZI /Od /I "." /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /YX /FD /GZ /c -# ADD BASE RSC /l 0x409 /d "_DEBUG" -# ADD RSC /l 0x409 /d "_DEBUG" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LIB32=link.exe -lib -# ADD BASE LIB32 /nologo -# ADD LIB32 /nologo /out:"Debug\tommath.lib" - -!ENDIF - -# Begin Target - -# Name "libtommath - Win32 Release" -# Name "libtommath - Win32 Debug" -# Begin Source File - -SOURCE=.\bn_error.c -# End Source File -# Begin Source File - -SOURCE=.\bn_fast_mp_invmod.c -# End Source File -# Begin Source File - -SOURCE=.\bn_fast_mp_montgomery_reduce.c -# End Source File -# Begin Source File - -SOURCE=.\bn_fast_s_mp_mul_digs.c -# End Source File -# Begin Source File - -SOURCE=.\bn_fast_s_mp_mul_high_digs.c -# End Source File -# Begin Source File - -SOURCE=.\bn_fast_s_mp_sqr.c -# End Source File -# Begin Source File - -SOURCE=.\bn_mp_2expt.c -# End Source File -# Begin Source File - -SOURCE=.\bn_mp_abs.c -# End Source File -# Begin Source File - -SOURCE=.\bn_mp_add.c -# End Source File -# Begin Source File - -SOURCE=.\bn_mp_add_d.c -# End Source File -# Begin Source File - -SOURCE=.\bn_mp_addmod.c -# End Source File -# Begin Source File - -SOURCE=.\bn_mp_and.c -# End Source File -# Begin Source File - -SOURCE=.\bn_mp_clamp.c -# End Source File -# Begin Source File - -SOURCE=.\bn_mp_clear.c -# End Source File -# Begin Source File - -SOURCE=.\bn_mp_clear_multi.c -# End Source File -# Begin Source File - -SOURCE=.\bn_mp_cmp.c -# End Source File -# Begin Source File - -SOURCE=.\bn_mp_cmp_d.c -# End Source File -# Begin Source File - -SOURCE=.\bn_mp_cmp_mag.c -# End Source File -# Begin Source File - -SOURCE=.\bn_mp_cnt_lsb.c -# End Source File -# Begin Source File - -SOURCE=.\bn_mp_copy.c -# End Source File -# Begin Source File - -SOURCE=.\bn_mp_count_bits.c -# End Source File -# Begin Source File - -SOURCE=.\bn_mp_div.c -# End Source File -# Begin Source File - -SOURCE=.\bn_mp_div_2.c -# End Source File -# Begin Source File - -SOURCE=.\bn_mp_div_2d.c -# End Source File -# Begin Source File - -SOURCE=.\bn_mp_div_3.c -# End Source File -# Begin Source File - -SOURCE=.\bn_mp_div_d.c -# End Source File -# Begin Source File - -SOURCE=.\bn_mp_dr_is_modulus.c -# End Source File -# Begin Source File - -SOURCE=.\bn_mp_dr_reduce.c -# End Source File -# Begin Source File - -SOURCE=.\bn_mp_dr_setup.c -# End Source File -# Begin Source File - -SOURCE=.\bn_mp_exch.c -# End Source File -# Begin Source File - -SOURCE=.\bn_mp_expt_d.c -# End Source File -# Begin Source File - -SOURCE=.\bn_mp_exptmod.c -# End Source File -# Begin Source File - -SOURCE=.\bn_mp_exptmod_fast.c -# End Source File -# Begin Source File - -SOURCE=.\bn_mp_exteuclid.c -# End Source File -# Begin Source File - -SOURCE=.\bn_mp_fread.c -# End Source File -# Begin Source File - -SOURCE=.\bn_mp_fwrite.c -# End Source File -# Begin Source File - -SOURCE=.\bn_mp_gcd.c -# End Source File -# Begin Source File - -SOURCE=.\bn_mp_get_int.c -# End Source File -# Begin Source File - -SOURCE=.\bn_mp_grow.c -# End Source File -# Begin Source File - -SOURCE=.\bn_mp_init.c -# End Source File -# Begin Source File - -SOURCE=.\bn_mp_init_copy.c -# End Source File -# Begin Source File - -SOURCE=.\bn_mp_init_multi.c -# End Source File -# Begin Source File - -SOURCE=.\bn_mp_init_set.c -# End Source File -# Begin Source File - -SOURCE=.\bn_mp_init_set_int.c -# End Source File -# Begin Source File - -SOURCE=.\bn_mp_init_size.c -# End Source File -# Begin Source File - -SOURCE=.\bn_mp_invmod.c -# End Source File -# Begin Source File - -SOURCE=.\bn_mp_invmod_slow.c -# End Source File -# Begin Source File - -SOURCE=.\bn_mp_is_square.c -# End Source File -# Begin Source File - -SOURCE=.\bn_mp_jacobi.c -# End Source File -# Begin Source File - -SOURCE=.\bn_mp_karatsuba_mul.c -# End Source File -# Begin Source File - -SOURCE=.\bn_mp_karatsuba_sqr.c -# End Source File -# Begin Source File - -SOURCE=.\bn_mp_lcm.c -# End Source File -# Begin Source File - -SOURCE=.\bn_mp_lshd.c -# End Source File -# Begin Source File - -SOURCE=.\bn_mp_mod.c -# End Source File -# Begin Source File - -SOURCE=.\bn_mp_mod_2d.c -# End Source File -# Begin Source File - -SOURCE=.\bn_mp_mod_d.c -# End Source File -# Begin Source File - -SOURCE=.\bn_mp_montgomery_calc_normalization.c -# End Source File -# Begin Source File - -SOURCE=.\bn_mp_montgomery_reduce.c -# End Source File -# Begin Source File - -SOURCE=.\bn_mp_montgomery_setup.c -# End Source File -# Begin Source File - -SOURCE=.\bn_mp_mul.c -# End Source File -# Begin Source File - -SOURCE=.\bn_mp_mul_2.c -# End Source File -# Begin Source File - -SOURCE=.\bn_mp_mul_2d.c -# End Source File -# Begin Source File - -SOURCE=.\bn_mp_mul_d.c -# End Source File -# Begin Source File - -SOURCE=.\bn_mp_mulmod.c -# End Source File -# Begin Source File - -SOURCE=.\bn_mp_n_root.c -# End Source File -# Begin Source File - -SOURCE=.\bn_mp_neg.c -# End Source File -# Begin Source File - -SOURCE=.\bn_mp_or.c -# End Source File -# Begin Source File - -SOURCE=.\bn_mp_prime_fermat.c -# End Source File -# Begin Source File - -SOURCE=.\bn_mp_prime_is_divisible.c -# End Source File -# Begin Source File - -SOURCE=.\bn_mp_prime_is_prime.c -# End Source File -# Begin Source File - -SOURCE=.\bn_mp_prime_miller_rabin.c -# End Source File -# Begin Source File - -SOURCE=.\bn_mp_prime_next_prime.c -# End Source File -# Begin Source File - -SOURCE=.\bn_mp_prime_rabin_miller_trials.c -# End Source File -# Begin Source File - -SOURCE=.\bn_mp_prime_random_ex.c -# End Source File -# Begin Source File - -SOURCE=.\bn_mp_radix_size.c -# End Source File -# Begin Source File - -SOURCE=.\bn_mp_radix_smap.c -# End Source File -# Begin Source File - -SOURCE=.\bn_mp_rand.c -# End Source File -# Begin Source File - -SOURCE=.\bn_mp_read_radix.c -# End Source File -# Begin Source File - -SOURCE=.\bn_mp_read_signed_bin.c -# End Source File -# Begin Source File - -SOURCE=.\bn_mp_read_unsigned_bin.c -# End Source File -# Begin Source File - -SOURCE=.\bn_mp_reduce.c -# End Source File -# Begin Source File - -SOURCE=.\bn_mp_reduce_2k.c -# End Source File -# Begin Source File - -SOURCE=.\bn_mp_reduce_2k_l.c -# End Source File -# Begin Source File - -SOURCE=.\bn_mp_reduce_2k_setup.c -# End Source File -# Begin Source File - -SOURCE=.\bn_mp_reduce_2k_setup_l.c -# End Source File -# Begin Source File - -SOURCE=.\bn_mp_reduce_is_2k.c -# End Source File -# Begin Source File - -SOURCE=.\bn_mp_reduce_is_2k_l.c -# End Source File -# Begin Source File - -SOURCE=.\bn_mp_reduce_setup.c -# End Source File -# Begin Source File - -SOURCE=.\bn_mp_rshd.c -# End Source File -# Begin Source File - -SOURCE=.\bn_mp_set.c -# End Source File -# Begin Source File - -SOURCE=.\bn_mp_set_int.c -# End Source File -# Begin Source File - -SOURCE=.\bn_mp_shrink.c -# End Source File -# Begin Source File - -SOURCE=.\bn_mp_signed_bin_size.c -# End Source File -# Begin Source File - -SOURCE=.\bn_mp_sqr.c -# End Source File -# Begin Source File - -SOURCE=.\bn_mp_sqrmod.c -# End Source File -# Begin Source File - -SOURCE=.\bn_mp_sqrt.c -# End Source File -# Begin Source File - -SOURCE=.\bn_mp_sub.c -# End Source File -# Begin Source File - -SOURCE=.\bn_mp_sub_d.c -# End Source File -# Begin Source File - -SOURCE=.\bn_mp_submod.c -# End Source File -# Begin Source File - -SOURCE=.\bn_mp_to_signed_bin.c -# End Source File -# Begin Source File - -SOURCE=.\bn_mp_to_signed_bin_n.c -# End Source File -# Begin Source File - -SOURCE=.\bn_mp_to_unsigned_bin.c -# End Source File -# Begin Source File - -SOURCE=.\bn_mp_to_unsigned_bin_n.c -# End Source File -# Begin Source File - -SOURCE=.\bn_mp_toom_mul.c -# End Source File -# Begin Source File - -SOURCE=.\bn_mp_toom_sqr.c -# End Source File -# Begin Source File - -SOURCE=.\bn_mp_toradix.c -# End Source File -# Begin Source File - -SOURCE=.\bn_mp_toradix_n.c -# End Source File -# Begin Source File - -SOURCE=.\bn_mp_unsigned_bin_size.c -# End Source File -# Begin Source File - -SOURCE=.\bn_mp_xor.c -# End Source File -# Begin Source File - -SOURCE=.\bn_mp_zero.c -# End Source File -# Begin Source File - -SOURCE=.\bn_prime_tab.c -# End Source File -# Begin Source File - -SOURCE=.\bn_reverse.c -# End Source File -# Begin Source File - -SOURCE=.\bn_s_mp_add.c -# End Source File -# Begin Source File - -SOURCE=.\bn_s_mp_exptmod.c -# End Source File -# Begin Source File - -SOURCE=.\bn_s_mp_mul_digs.c -# End Source File -# Begin Source File - -SOURCE=.\bn_s_mp_mul_high_digs.c -# End Source File -# Begin Source File - -SOURCE=.\bn_s_mp_sqr.c -# End Source File -# Begin Source File - -SOURCE=.\bn_s_mp_sub.c -# End Source File -# Begin Source File - -SOURCE=.\bncore.c -# End Source File -# Begin Source File - -SOURCE=.\tommath.h -# End Source File -# Begin Source File - -SOURCE=.\tommath_class.h -# End Source File -# Begin Source File - -SOURCE=.\tommath_superclass.h -# End Source File -# End Target -# End Project +# Microsoft Developer Studio Project File - Name="libtommath" - Package Owner=<4> +# Microsoft Developer Studio Generated Build File, Format Version 6.00 +# ** DO NOT EDIT ** + +# TARGTYPE "Win32 (x86) Static Library" 0x0104 + +CFG=libtommath - Win32 Debug +!MESSAGE This is not a valid makefile. To build this project using NMAKE, +!MESSAGE use the Export Makefile command and run +!MESSAGE +!MESSAGE NMAKE /f "libtommath.mak". +!MESSAGE +!MESSAGE You can specify a configuration when running NMAKE +!MESSAGE by defining the macro CFG on the command line. For example: +!MESSAGE +!MESSAGE NMAKE /f "libtommath.mak" CFG="libtommath - Win32 Debug" +!MESSAGE +!MESSAGE Possible choices for configuration are: +!MESSAGE +!MESSAGE "libtommath - Win32 Release" (based on "Win32 (x86) Static Library") +!MESSAGE "libtommath - Win32 Debug" (based on "Win32 (x86) Static Library") +!MESSAGE + +# Begin Project +# PROP AllowPerConfigDependencies 0 +# PROP Scc_ProjName "libtommath" +# PROP Scc_LocalPath "." +CPP=cl.exe +RSC=rc.exe + +!IF "$(CFG)" == "libtommath - Win32 Release" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 0 +# PROP BASE Output_Dir "Release" +# PROP BASE Intermediate_Dir "Release" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 0 +# PROP Output_Dir "Release" +# PROP Intermediate_Dir "Release" +# PROP Target_Dir "" +# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_MBCS" /D "_LIB" /YX /FD /c +# ADD CPP /nologo /W3 /GX /O2 /I "." /D "WIN32" /D "NDEBUG" /D "_MBCS" /D "_LIB" /YX /FD /c +# ADD BASE RSC /l 0x409 /d "NDEBUG" +# ADD RSC /l 0x409 /d "NDEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LIB32=link.exe -lib +# ADD BASE LIB32 /nologo +# ADD LIB32 /nologo /out:"Release\tommath.lib" + +!ELSEIF "$(CFG)" == "libtommath - Win32 Debug" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 1 +# PROP BASE Output_Dir "Debug" +# PROP BASE Intermediate_Dir "Debug" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 1 +# PROP Output_Dir "Debug" +# PROP Intermediate_Dir "Debug" +# PROP Target_Dir "" +# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /YX /FD /GZ /c +# ADD CPP /nologo /W3 /Gm /GX /ZI /Od /I "." /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /YX /FD /GZ /c +# ADD BASE RSC /l 0x409 /d "_DEBUG" +# ADD RSC /l 0x409 /d "_DEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LIB32=link.exe -lib +# ADD BASE LIB32 /nologo +# ADD LIB32 /nologo /out:"Debug\tommath.lib" + +!ENDIF + +# Begin Target + +# Name "libtommath - Win32 Release" +# Name "libtommath - Win32 Debug" +# Begin Source File + +SOURCE=.\bn_error.c +# End Source File +# Begin Source File + +SOURCE=.\bn_fast_mp_invmod.c +# End Source File +# Begin Source File + +SOURCE=.\bn_fast_mp_montgomery_reduce.c +# End Source File +# Begin Source File + +SOURCE=.\bn_fast_s_mp_mul_digs.c +# End Source File +# Begin Source File + +SOURCE=.\bn_fast_s_mp_mul_high_digs.c +# End Source File +# Begin Source File + +SOURCE=.\bn_fast_s_mp_sqr.c +# End Source File +# Begin Source File + +SOURCE=.\bn_mp_2expt.c +# End Source File +# Begin Source File + +SOURCE=.\bn_mp_abs.c +# End Source File +# Begin Source File + +SOURCE=.\bn_mp_add.c +# End Source File +# Begin Source File + +SOURCE=.\bn_mp_add_d.c +# End Source File +# Begin Source File + +SOURCE=.\bn_mp_addmod.c +# End Source File +# Begin Source File + +SOURCE=.\bn_mp_and.c +# End Source File +# Begin Source File + +SOURCE=.\bn_mp_clamp.c +# End Source File +# Begin Source File + +SOURCE=.\bn_mp_clear.c +# End Source File +# Begin Source File + +SOURCE=.\bn_mp_clear_multi.c +# End Source File +# Begin Source File + +SOURCE=.\bn_mp_cmp.c +# End Source File +# Begin Source File + +SOURCE=.\bn_mp_cmp_d.c +# End Source File +# Begin Source File + +SOURCE=.\bn_mp_cmp_mag.c +# End Source File +# Begin Source File + +SOURCE=.\bn_mp_cnt_lsb.c +# End Source File +# Begin Source File + +SOURCE=.\bn_mp_copy.c +# End Source File +# Begin Source File + +SOURCE=.\bn_mp_count_bits.c +# End Source File +# Begin Source File + +SOURCE=.\bn_mp_div.c +# End Source File +# Begin Source File + +SOURCE=.\bn_mp_div_2.c +# End Source File +# Begin Source File + +SOURCE=.\bn_mp_div_2d.c +# End Source File +# Begin Source File + +SOURCE=.\bn_mp_div_3.c +# End Source File +# Begin Source File + +SOURCE=.\bn_mp_div_d.c +# End Source File +# Begin Source File + +SOURCE=.\bn_mp_dr_is_modulus.c +# End Source File +# Begin Source File + +SOURCE=.\bn_mp_dr_reduce.c +# End Source File +# Begin Source File + +SOURCE=.\bn_mp_dr_setup.c +# End Source File +# Begin Source File + +SOURCE=.\bn_mp_exch.c +# End Source File +# Begin Source File + +SOURCE=.\bn_mp_expt_d.c +# End Source File +# Begin Source File + +SOURCE=.\bn_mp_exptmod.c +# End Source File +# Begin Source File + +SOURCE=.\bn_mp_exptmod_fast.c +# End Source File +# Begin Source File + +SOURCE=.\bn_mp_exteuclid.c +# End Source File +# Begin Source File + +SOURCE=.\bn_mp_fread.c +# End Source File +# Begin Source File + +SOURCE=.\bn_mp_fwrite.c +# End Source File +# Begin Source File + +SOURCE=.\bn_mp_gcd.c +# End Source File +# Begin Source File + +SOURCE=.\bn_mp_get_int.c +# End Source File +# Begin Source File + +SOURCE=.\bn_mp_grow.c +# End Source File +# Begin Source File + +SOURCE=.\bn_mp_init.c +# End Source File +# Begin Source File + +SOURCE=.\bn_mp_init_copy.c +# End Source File +# Begin Source File + +SOURCE=.\bn_mp_init_multi.c +# End Source File +# Begin Source File + +SOURCE=.\bn_mp_init_set.c +# End Source File +# Begin Source File + +SOURCE=.\bn_mp_init_set_int.c +# End Source File +# Begin Source File + +SOURCE=.\bn_mp_init_size.c +# End Source File +# Begin Source File + +SOURCE=.\bn_mp_invmod.c +# End Source File +# Begin Source File + +SOURCE=.\bn_mp_invmod_slow.c +# End Source File +# Begin Source File + +SOURCE=.\bn_mp_is_square.c +# End Source File +# Begin Source File + +SOURCE=.\bn_mp_jacobi.c +# End Source File +# Begin Source File + +SOURCE=.\bn_mp_karatsuba_mul.c +# End Source File +# Begin Source File + +SOURCE=.\bn_mp_karatsuba_sqr.c +# End Source File +# Begin Source File + +SOURCE=.\bn_mp_lcm.c +# End Source File +# Begin Source File + +SOURCE=.\bn_mp_lshd.c +# End Source File +# Begin Source File + +SOURCE=.\bn_mp_mod.c +# End Source File +# Begin Source File + +SOURCE=.\bn_mp_mod_2d.c +# End Source File +# Begin Source File + +SOURCE=.\bn_mp_mod_d.c +# End Source File +# Begin Source File + +SOURCE=.\bn_mp_montgomery_calc_normalization.c +# End Source File +# Begin Source File + +SOURCE=.\bn_mp_montgomery_reduce.c +# End Source File +# Begin Source File + +SOURCE=.\bn_mp_montgomery_setup.c +# End Source File +# Begin Source File + +SOURCE=.\bn_mp_mul.c +# End Source File +# Begin Source File + +SOURCE=.\bn_mp_mul_2.c +# End Source File +# Begin Source File + +SOURCE=.\bn_mp_mul_2d.c +# End Source File +# Begin Source File + +SOURCE=.\bn_mp_mul_d.c +# End Source File +# Begin Source File + +SOURCE=.\bn_mp_mulmod.c +# End Source File +# Begin Source File + +SOURCE=.\bn_mp_n_root.c +# End Source File +# Begin Source File + +SOURCE=.\bn_mp_neg.c +# End Source File +# Begin Source File + +SOURCE=.\bn_mp_or.c +# End Source File +# Begin Source File + +SOURCE=.\bn_mp_prime_fermat.c +# End Source File +# Begin Source File + +SOURCE=.\bn_mp_prime_is_divisible.c +# End Source File +# Begin Source File + +SOURCE=.\bn_mp_prime_is_prime.c +# End Source File +# Begin Source File + +SOURCE=.\bn_mp_prime_miller_rabin.c +# End Source File +# Begin Source File + +SOURCE=.\bn_mp_prime_next_prime.c +# End Source File +# Begin Source File + +SOURCE=.\bn_mp_prime_rabin_miller_trials.c +# End Source File +# Begin Source File + +SOURCE=.\bn_mp_prime_random_ex.c +# End Source File +# Begin Source File + +SOURCE=.\bn_mp_radix_size.c +# End Source File +# Begin Source File + +SOURCE=.\bn_mp_radix_smap.c +# End Source File +# Begin Source File + +SOURCE=.\bn_mp_rand.c +# End Source File +# Begin Source File + +SOURCE=.\bn_mp_read_radix.c +# End Source File +# Begin Source File + +SOURCE=.\bn_mp_read_signed_bin.c +# End Source File +# Begin Source File + +SOURCE=.\bn_mp_read_unsigned_bin.c +# End Source File +# Begin Source File + +SOURCE=.\bn_mp_reduce.c +# End Source File +# Begin Source File + +SOURCE=.\bn_mp_reduce_2k.c +# End Source File +# Begin Source File + +SOURCE=.\bn_mp_reduce_2k_l.c +# End Source File +# Begin Source File + +SOURCE=.\bn_mp_reduce_2k_setup.c +# End Source File +# Begin Source File + +SOURCE=.\bn_mp_reduce_2k_setup_l.c +# End Source File +# Begin Source File + +SOURCE=.\bn_mp_reduce_is_2k.c +# End Source File +# Begin Source File + +SOURCE=.\bn_mp_reduce_is_2k_l.c +# End Source File +# Begin Source File + +SOURCE=.\bn_mp_reduce_setup.c +# End Source File +# Begin Source File + +SOURCE=.\bn_mp_rshd.c +# End Source File +# Begin Source File + +SOURCE=.\bn_mp_set.c +# End Source File +# Begin Source File + +SOURCE=.\bn_mp_set_int.c +# End Source File +# Begin Source File + +SOURCE=.\bn_mp_shrink.c +# End Source File +# Begin Source File + +SOURCE=.\bn_mp_signed_bin_size.c +# End Source File +# Begin Source File + +SOURCE=.\bn_mp_sqr.c +# End Source File +# Begin Source File + +SOURCE=.\bn_mp_sqrmod.c +# End Source File +# Begin Source File + +SOURCE=.\bn_mp_sqrt.c +# End Source File +# Begin Source File + +SOURCE=.\bn_mp_sub.c +# End Source File +# Begin Source File + +SOURCE=.\bn_mp_sub_d.c +# End Source File +# Begin Source File + +SOURCE=.\bn_mp_submod.c +# End Source File +# Begin Source File + +SOURCE=.\bn_mp_to_signed_bin.c +# End Source File +# Begin Source File + +SOURCE=.\bn_mp_to_signed_bin_n.c +# End Source File +# Begin Source File + +SOURCE=.\bn_mp_to_unsigned_bin.c +# End Source File +# Begin Source File + +SOURCE=.\bn_mp_to_unsigned_bin_n.c +# End Source File +# Begin Source File + +SOURCE=.\bn_mp_toom_mul.c +# End Source File +# Begin Source File + +SOURCE=.\bn_mp_toom_sqr.c +# End Source File +# Begin Source File + +SOURCE=.\bn_mp_toradix.c +# End Source File +# Begin Source File + +SOURCE=.\bn_mp_toradix_n.c +# End Source File +# Begin Source File + +SOURCE=.\bn_mp_unsigned_bin_size.c +# End Source File +# Begin Source File + +SOURCE=.\bn_mp_xor.c +# End Source File +# Begin Source File + +SOURCE=.\bn_mp_zero.c +# End Source File +# Begin Source File + +SOURCE=.\bn_prime_tab.c +# End Source File +# Begin Source File + +SOURCE=.\bn_reverse.c +# End Source File +# Begin Source File + +SOURCE=.\bn_s_mp_add.c +# End Source File +# Begin Source File + +SOURCE=.\bn_s_mp_exptmod.c +# End Source File +# Begin Source File + +SOURCE=.\bn_s_mp_mul_digs.c +# End Source File +# Begin Source File + +SOURCE=.\bn_s_mp_mul_high_digs.c +# End Source File +# Begin Source File + +SOURCE=.\bn_s_mp_sqr.c +# End Source File +# Begin Source File + +SOURCE=.\bn_s_mp_sub.c +# End Source File +# Begin Source File + +SOURCE=.\bncore.c +# End Source File +# Begin Source File + +SOURCE=.\tommath.h +# End Source File +# Begin Source File + +SOURCE=.\tommath_class.h +# End Source File +# Begin Source File + +SOURCE=.\tommath_superclass.h +# End Source File +# End Target +# End Project diff --git a/lib/hcrypto/libtommath/logs/README b/lib/hcrypto/libtommath/logs/README index ea20c8137..965e7c83c 100644 --- a/lib/hcrypto/libtommath/logs/README +++ b/lib/hcrypto/libtommath/logs/README @@ -1,13 +1,13 @@ -To use the pretty graphs you have to first build/run the ltmtest from the root directory of the package. -Todo this type - -make timing ; ltmtest - -in the root. It will run for a while [about ten minutes on most PCs] and produce a series of .log files in logs/. - -After doing that run "gnuplot graphs.dem" to make the PNGs. If you managed todo that all so far just open index.html to view -them all :-) - -Have fun - +To use the pretty graphs you have to first build/run the ltmtest from the root directory of the package. +Todo this type + +make timing ; ltmtest + +in the root. It will run for a while [about ten minutes on most PCs] and produce a series of .log files in logs/. + +After doing that run "gnuplot graphs.dem" to make the PNGs. If you managed todo that all so far just open index.html to view +them all :-) + +Have fun + Tom \ No newline at end of file From d6cf7e78e9e40b203e093f8cdb3dd3175e6b7214 Mon Sep 17 00:00:00 2001 From: Asanka Herath Date: Thu, 26 Aug 2010 16:05:06 -0400 Subject: [PATCH 25/41] Windows: Build thirdparty packages if there are any --- NTMakefile | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/NTMakefile b/NTMakefile index 45008cb46..a22e7d308 100644 --- a/NTMakefile +++ b/NTMakefile @@ -2,19 +2,19 @@ # # Copyright (c) 2009, Secure Endpoints Inc. # All rights reserved. -# +# # Redistribution and use in source and binary forms, with or without # modification, are permitted provided that the following conditions # are met: -# +# # - Redistributions of source code must retain the above copyright # notice, this list of conditions and the following disclaimer. -# +# # - Redistributions in binary form must reproduce the above copyright # notice, this list of conditions and the following disclaimer in # the documentation and/or other materials provided with the # distribution. -# +# # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS # "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT # LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS @@ -27,9 +27,14 @@ # LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN # ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE # POSSIBILITY OF SUCH DAMAGE. -# +# -SUBDIRS = include lib kuser kdc admin kadmin kpasswd appl doc tools tests packages etc +!if exist(thirdparty/NTMakefile) +thirdparty=thirdparty +!endif + +SUBDIRS = include lib kuser kdc admin kadmin kpasswd appl doc \ + tools tests packages etc $(thirdparty) !include windows/NTMakefile.w32 From 9db9b146fb9cbbf6b135299ac281e155a88ec9ba Mon Sep 17 00:00:00 2001 From: Asanka Herath Date: Thu, 26 Aug 2010 16:10:32 -0400 Subject: [PATCH 26/41] Windows: Add support for MSLSA: cache type using a plug-in --- include/NTMakefile | 1 + lib/krb5/NTMakefile | 8 ++++ lib/krb5/context.c | 3 ++ lib/krb5/lsacache.c | 92 +++++++++++++++++++++++++++++++++++++++ windows/NTMakefile.config | 3 ++ 5 files changed, 107 insertions(+) create mode 100644 lib/krb5/lsacache.c diff --git a/include/NTMakefile b/include/NTMakefile index c4aa663e7..b0d35daac 100644 --- a/include/NTMakefile +++ b/include/NTMakefile @@ -74,6 +74,7 @@ while(<>) { if ("$(HAVE_KCM)") { print "#define HAVE_KCM 1\n"; } if ("$(HAVE_SCC)") { print "#define HAVE_SCC 1\n"; } if ("$(DIR_hdbdir)") { print "#define HDB_DB_DIR \"".'$(DIR_hdbdir)'."\"\n"; } + if ("$(HAVE_MSLSA_CACHE)") { print "#define HAVE_MSLSA_CACHE 1\n"; } } elsif (m/\@VERSION_OPTDEFS\@/) { diff --git a/lib/krb5/NTMakefile b/lib/krb5/NTMakefile index a72ca673c..a308c48dd 100644 --- a/lib/krb5/NTMakefile +++ b/lib/krb5/NTMakefile @@ -264,6 +264,14 @@ dist_libkrb5_la_SOURCES = \ warn.c \ write_message.c +!ifdef HAVE_MSLSA_CACHE +libkrb5_OBJS=$(libkrb5_OBJS) \ + $(OBJ)\lsacache.obj + +dist_libkrb5_la_SOURCES=$(dist_libkrb5_la_SOURCES) \ + lsacache.c +!endif + $(OBJ)\krb5-protos.h: $(dist_libkrb5_la_SOURCES) $(PERL) ..\..\cf\make-proto.pl -E KRB5_LIB -q -P remove -o $(OBJ)\krb5-protos.h $(dist_libkrb5_la_SOURCES) || $(RM) -f krb5-protos.h diff --git a/lib/krb5/context.c b/lib/krb5/context.c index d6bb57097..0b12e6c48 100644 --- a/lib/krb5/context.c +++ b/lib/krb5/context.c @@ -246,6 +246,9 @@ cc_ops_register(krb5_context context) krb5_cc_register(context, &krb5_akcm_ops, TRUE); #endif krb5_cc_register(context, &krb5_kcm_ops, TRUE); +#endif +#ifdef HAVE_MSLSA_CACHE + _krb5_mslsa_register_cc_ops(context, TRUE); #endif return 0; } diff --git a/lib/krb5/lsacache.c b/lib/krb5/lsacache.c new file mode 100644 index 000000000..21f05f1a1 --- /dev/null +++ b/lib/krb5/lsacache.c @@ -0,0 +1,92 @@ +/* + */ + +#include "krb5_locl.h" +#ifdef HAVE_DLFCN_H +#include +#endif +#include + +static HEIMDAL_MUTEX lsacc_mutex = HEIMDAL_MUTEX_INITIALIZER; +const krb5_cc_ops * lsacc_ops = NULL; + +static void *lsacc_handle; + +krb5_error_code +_krb5_mslsa_register_cc_ops(krb5_context context, krb5_boolean override) +{ + const char *lib = NULL; + + HEIMDAL_MUTEX_lock(&lsacc_mutex); + if (lsacc_ops) { + HEIMDAL_MUTEX_unlock(&lsacc_mutex); + if (context) { + krb5_clear_error_message(context); + krb5_cc_register(context, lsacc_ops, override); + } + return 0; + } + + if (context) + lib = krb5_config_get_string(context, NULL, + "libdefaults", "mslsa_library", + NULL); + if (lib == NULL) { + lib = "%{LIBDIR}/mslsa_cc.dll"; + } + + { + char * explib = NULL; + if (_krb5_expand_path_tokens(context, lib, &explib) == 0) { + lsacc_handle = dlopen(explib, RTLD_LAZY|RTLD_LOCAL); + free(explib); + } + } + + if (lsacc_handle == NULL) { + HEIMDAL_MUTEX_unlock(&lsacc_mutex); + if (context) + krb5_set_error_message(context, KRB5_CC_NOSUPP, + N_("Failed to load MSLSA cache module %s", "file"), + lib); + return KRB5_CC_NOSUPP; + } + + { + krb5_error_code ret = 0; + krb5_error_code (KRB5_CALLCONV *lsacc_get_ops)(const krb5_cc_ops ** ops); + + lsacc_get_ops = (krb5_error_code (KRB5_CALLCONV *)(const krb5_cc_ops **)) + dlsym(lsacc_handle, "lsacc_get_ops"); + + if (lsacc_get_ops) { + ret = (*lsacc_get_ops)(&lsacc_ops); + } + + HEIMDAL_MUTEX_unlock(&lsacc_mutex); + + if (ret != 0) { + if (context) + krb5_set_error_message(context, KRB5_CC_NOSUPP, + N_("LSA cache initialization failed (%d)", + "error"), ret); + dlclose(lsacc_handle); + return KRB5_CC_NOSUPP; + } + + if (lsacc_get_ops == NULL) { + if (context) + krb5_set_error_message(context, KRB5_CC_NOSUPP, + N_("Failed to find lsacc_get_ops" + "in %s: %s", "file, error"), lib, dlerror()); + dlclose(lsacc_handle); + return KRB5_CC_NOSUPP; + } + } + + assert(lsacc_ops != NULL); + + if (context) + return krb5_cc_register(context, lsacc_ops, override); + return 0; +} diff --git a/windows/NTMakefile.config b/windows/NTMakefile.config index ab9053fe1..9c6777b55 100644 --- a/windows/NTMakefile.config +++ b/windows/NTMakefile.config @@ -95,3 +95,6 @@ ENABLE_PTHREAD_SUPPORT=1 HAVE_SCC=1 DIR_hdbdir=%{COMMON_APPDATA}/heimdal/hdb + +# Enable MSLSA cache backend +HAVE_MSLSA_CACHE=1 From ba02163f2e3ff7323b00cd470bcd78321e6beb4b Mon Sep 17 00:00:00 2001 From: Asanka Herath Date: Thu, 26 Aug 2010 16:21:06 -0400 Subject: [PATCH 27/41] Windows: Don't ignore failure in test_addr from now on --- lib/krb5/NTMakefile | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/lib/krb5/NTMakefile b/lib/krb5/NTMakefile index a308c48dd..b534e6ec0 100644 --- a/lib/krb5/NTMakefile +++ b/lib/krb5/NTMakefile @@ -317,6 +317,9 @@ all:: $(OBJ)\libkrb5-exports.def clean:: -$(RM) $(OBJ)\libkrb5-exports.def +#---------------------------------------------------------------------- +# Tools + all-tools:: $(BINDIR)\verify_krb5_conf.exe clean:: @@ -385,7 +388,7 @@ test-run: store-test.exe string-to-key-test.exe test_acl.exe - -test_addr.exe + test_addr.exe test_cc.exe test_config.exe test_prf.exe From e8e56defafadfabc64e8e4724a7da762b4cc9a04 Mon Sep 17 00:00:00 2001 From: Asanka Herath Date: Thu, 26 Aug 2010 16:21:46 -0400 Subject: [PATCH 28/41] Don't rely on non-CCAPI v3 exports krb5_ipc_client_set_target_uid() and krb5_ipc_client_clear_target() may not be present in CCAPI plug-in. Don't rely on their existence. --- lib/krb5/acache.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/lib/krb5/acache.c b/lib/krb5/acache.c index 6c6f2fe93..6f20cdcf6 100644 --- a/lib/krb5/acache.c +++ b/lib/krb5/acache.c @@ -172,14 +172,16 @@ void _heim_krb5_ipc_client_set_target_uid(uid_t uid) { init_ccapi(NULL); - (*set_target_uid)(uid); + if (set_target_uid != NULL) + (*set_target_uid)(uid); } void _heim_krb5_ipc_client_clear_target(void) { init_ccapi(NULL); - (*clear_target)(); + if (clear_target != NULL) + (*clear_target)(); } static krb5_error_code From ff9cb6572dc3cdde3daaae1aa89c1382334b49b4 Mon Sep 17 00:00:00 2001 From: Asanka Herath Date: Thu, 26 Aug 2010 16:23:42 -0400 Subject: [PATCH 29/41] Deal with NULL or empty input for expand_path_tokens() _krb5_expand_path_tokens() should return an empty string if the input string is empty or NULL, instead of always returning a NULL for these two cases. --- lib/krb5/expand_path.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/lib/krb5/expand_path.c b/lib/krb5/expand_path.c index a65ea8c74..70096e1c7 100644 --- a/lib/krb5/expand_path.c +++ b/lib/krb5/expand_path.c @@ -407,6 +407,11 @@ _krb5_expand_path_tokens(krb5_context context, const char *path_left; size_t len = 0; + if (path_in == NULL || *path_in == '\0') { + *ppath_out = strdup(""); + return 0; + } + *ppath_out = NULL; for (path_left = path_in; path_left && *path_left; ) { From c93c2c72be0a1e3022e89b387b7db18049ce7b6c Mon Sep 17 00:00:00 2001 From: Asanka Herath Date: Thu, 26 Aug 2010 16:25:13 -0400 Subject: [PATCH 30/41] Additional MIT glue Add compatible exports for: krb5_auth_con_getsendsubkey() krb5_auth_con_getrecvsubkey() krb5_auth_con_setsendsubkey() krb5_auth_con_setrecvsubkey() --- lib/krb5/mit_glue.c | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/lib/krb5/mit_glue.c b/lib/krb5/mit_glue.c index 0ff3d7f3c..7c89d9f1d 100644 --- a/lib/krb5/mit_glue.c +++ b/lib/krb5/mit_glue.c @@ -392,4 +392,32 @@ krb5_cc_copy_creds(krb5_context context, return krb5_cc_copy_cache(context, from, to); } +KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL +krb5_auth_con_getsendsubkey(krb5_context context, krb5_auth_context auth_context, + krb5_keyblock **keyblock) +{ + return krb5_auth_con_getlocalsubkey(context, auth_context, keyblock); +} + +KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL +krb5_auth_con_getrecvsubkey(krb5_context context, krb5_auth_context auth_context, + krb5_keyblock **keyblock) +{ + return krb5_auth_con_getremotesubkey(context, auth_context, keyblock); +} + +KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL +krb5_auth_con_setsendsubkey(krb5_context context, krb5_auth_context auth_context, + krb5_keyblock *keyblock) +{ + return krb5_auth_con_setlocalsubkey(context, auth_context, keyblock); +} + +KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL +krb5_auth_con_setrecvsubkey(krb5_context context, krb5_auth_context auth_context, + krb5_keyblock *keyblock) +{ + return krb5_auth_con_setremotesubkey(context, auth_context, keyblock); +} + #endif /* HEIMDAL_SMALLER */ From 5c39c25c773603eacd0cb84d7339c27fe8dfd864 Mon Sep 17 00:00:00 2001 From: Asanka Herath Date: Thu, 26 Aug 2010 16:26:43 -0400 Subject: [PATCH 31/41] Fix comment --- lib/krb5/data.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/krb5/data.c b/lib/krb5/data.c index 838135ffa..c4c202be5 100644 --- a/lib/krb5/data.c +++ b/lib/krb5/data.c @@ -87,7 +87,7 @@ krb5_free_data(krb5_context context, /** * Allocate data of and krb5_data. * - * @param p krb5_data to free. + * @param p krb5_data to allocate. * @param len size to allocate. * * @return Returns 0 to indicate success. Otherwise an kerberos et From a7ccfa07179d48619b657ee5e5c80c4a59291ce8 Mon Sep 17 00:00:00 2001 From: Asanka Herath Date: Fri, 27 Aug 2010 16:27:17 -0400 Subject: [PATCH 32/41] Define KRB5_TC_NOTICKET --- lib/krb5/krb5.h | 3 +++ 1 file changed, 3 insertions(+) diff --git a/lib/krb5/krb5.h b/lib/krb5/krb5.h index ae269ba37..4d26318bf 100644 --- a/lib/krb5/krb5.h +++ b/lib/krb5/krb5.h @@ -410,6 +410,9 @@ typedef union { #define KRB5_TC_MATCH_2ND_TKT (1 << 23) #define KRB5_TC_MATCH_IS_SKEY (1 << 22) +/* constants for get_flags and set_flags */ +#define KRB5_TC_NOTICKET 0x00000002 + typedef AuthorizationData krb5_authdata; typedef KRB_ERROR krb5_error; From 85f5f6bbda2d5782ef44c4db06edb23f7a3c1ab2 Mon Sep 17 00:00:00 2001 From: Asanka Herath Date: Fri, 27 Aug 2010 16:28:03 -0400 Subject: [PATCH 33/41] klist: If we aren't being verbose, we don't need the full ticket --- kuser/klist.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/kuser/klist.c b/kuser/klist.c index 90693dd10..3e76c4a5a 100644 --- a/kuser/klist.c +++ b/kuser/klist.c @@ -248,9 +248,12 @@ print_tickets (krb5_context context, } free (str); - if(do_verbose) + if(do_verbose) { printf ("%17s: %d\n", N_("Cache version", ""), krb5_cc_get_version(context, ccache)); + } else { + krb5_cc_set_flags(context, ccache, KRB5_TC_NOTICKET); + } ret = krb5_cc_get_kdc_offset(context, ccache, &sec); From 91bfec3059b1157b520d801189cf9ab4865d59bc Mon Sep 17 00:00:00 2001 From: Asanka Herath Date: Thu, 2 Sep 2010 17:13:26 -0400 Subject: [PATCH 34/41] Windows: Enable weak crypto by default --- include/NTMakefile | 1 + windows/NTMakefile.config | 3 +++ 2 files changed, 4 insertions(+) diff --git a/include/NTMakefile b/include/NTMakefile index b0d35daac..3838c4599 100644 --- a/include/NTMakefile +++ b/include/NTMakefile @@ -59,6 +59,7 @@ while(<>) { if ("$(KRB5)") { print "#define KRB5 1\n"; } if ("$(KRB4)") { print "#define KRB4 1\n"; } + if ("$(WEAK_CRYPTO)") { print "#define HEIM_WEAK_CRYPTO 1\n"; } if ("$(PKINIT)") { print "#define PKINIT 1\n"; } if ("$(NO_AFS)") { print "#define NO_AFS 1\n"; } if ("$(OPENLDAP)") { print "#define OPENLDAP 1\n"; } diff --git a/windows/NTMakefile.config b/windows/NTMakefile.config index 9c6777b55..0d4e08742 100644 --- a/windows/NTMakefile.config +++ b/windows/NTMakefile.config @@ -98,3 +98,6 @@ DIR_hdbdir=%{COMMON_APPDATA}/heimdal/hdb # Enable MSLSA cache backend HAVE_MSLSA_CACHE=1 + +# Enable weak crypto +WEAK_CRYPTO=1 From fa4021698e8f54ece8694db47bb6907d54747835 Mon Sep 17 00:00:00 2001 From: Asanka Herath Date: Thu, 2 Sep 2010 17:15:01 -0400 Subject: [PATCH 35/41] Handle Windows pathnames properly in krb5_cc_resolve() On Windows, a pathname can contain a drive letter and a colon. krb5_cc_resolve() used to check whether there were any colons in the ccache name string and assume it is a FILE: cache if there weren't. In addition, on Windows, check for a drive specification. --- lib/krb5/cache.c | 23 +++++++++++++++++++++-- 1 file changed, 21 insertions(+), 2 deletions(-) diff --git a/lib/krb5/cache.c b/lib/krb5/cache.c index 09fbe1d96..4c2cf3bce 100644 --- a/lib/krb5/cache.c +++ b/lib/krb5/cache.c @@ -217,6 +217,25 @@ allocate_ccache (krb5_context context, return ret; } +static int +is_possible_path_name(const char * name) +{ + const char * colon; + + if ((colon = strchr(name, ':')) == NULL) + return TRUE; + +#ifdef _WIN32 + /* :\path\to\cache ? */ + + if (colon == name + 1 && + strchr(colon + 1, ':') == NULL) + return TRUE; +#endif + + return FALSE; +} + /** * Find and allocate a ccache in `id' from the specification in `residual'. * If the ccache name doesn't contain any colon, interpret it as a file name. @@ -251,7 +270,7 @@ krb5_cc_resolve(krb5_context context, id); } } - if (strchr (name, ':') == NULL) + if (is_possible_path_name(name)) return allocate_ccache (context, &krb5_fcc_ops, name, id); else { krb5_set_error_message(context, KRB5_CC_UNKNOWN_TYPE, @@ -1413,7 +1432,7 @@ krb5_cccol_cursor_next(krb5_context context, krb5_cccol_cursor cursor, cursor->cursor = NULL; if (ret != KRB5_CC_END) break; - + cursor->idx++; } if (cursor->idx >= context->num_cc_ops) { From d4a80084f1f2a6c717d6362c0522b9db372aef14 Mon Sep 17 00:00:00 2001 From: Asanka Herath Date: Thu, 2 Sep 2010 17:17:56 -0400 Subject: [PATCH 36/41] Don't return a freed pointer in allocate_ccache() --- lib/krb5/cache.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/lib/krb5/cache.c b/lib/krb5/cache.c index 4c2cf3bce..d3926004b 100644 --- a/lib/krb5/cache.c +++ b/lib/krb5/cache.c @@ -206,8 +206,10 @@ allocate_ccache (krb5_context context, } ret = (*id)->ops->resolve(context, id, residual); - if(ret) + if(ret) { free(*id); + *id = NULL; + } #ifdef KRB5_USE_PATH_TOKENS if (exp_residual) From e447009d1b2484e53f125d3dd4c8b87fb378453d Mon Sep 17 00:00:00 2001 From: Asanka Herath Date: Thu, 2 Sep 2010 17:18:26 -0400 Subject: [PATCH 37/41] Add krb5_free_default_realm() to MIT glue --- lib/krb5/libkrb5-exports.def.in | 1 + lib/krb5/mit_glue.c | 6 ++++++ 2 files changed, 7 insertions(+) diff --git a/lib/krb5/libkrb5-exports.def.in b/lib/krb5/libkrb5-exports.def.in index 3ee5e1a6e..c12c08233 100644 --- a/lib/krb5/libkrb5-exports.def.in +++ b/lib/krb5/libkrb5-exports.def.in @@ -287,6 +287,7 @@ EXPORTS krb5_free_creds_contents krb5_free_data krb5_free_data_contents + krb5_free_default_realm krb5_free_error krb5_free_error_contents krb5_free_error_string diff --git a/lib/krb5/mit_glue.c b/lib/krb5/mit_glue.c index 7c89d9f1d..52ecfd1a0 100644 --- a/lib/krb5/mit_glue.c +++ b/lib/krb5/mit_glue.c @@ -420,4 +420,10 @@ krb5_auth_con_setrecvsubkey(krb5_context context, krb5_auth_context auth_context return krb5_auth_con_setremotesubkey(context, auth_context, keyblock); } +KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL +krb5_free_default_realm(krb5_context context, krb5_realm realm) +{ + return krb5_xfree(realm); +} + #endif /* HEIMDAL_SMALLER */ From 80599fcd9494a0b06ff8ab6639141de2402ba403 Mon Sep 17 00:00:00 2001 From: Asanka Herath Date: Thu, 2 Sep 2010 17:18:48 -0400 Subject: [PATCH 38/41] Define KRB5_TC_OPENCLOSE and KRB5_TC_NOTICKET in krb5.h --- lib/krb5/krb5.h | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/lib/krb5/krb5.h b/lib/krb5/krb5.h index 4d26318bf..8f4210e19 100644 --- a/lib/krb5/krb5.h +++ b/lib/krb5/krb5.h @@ -411,7 +411,8 @@ typedef union { #define KRB5_TC_MATCH_IS_SKEY (1 << 22) /* constants for get_flags and set_flags */ -#define KRB5_TC_NOTICKET 0x00000002 +#define KRB5_TC_OPENCLOSE 0x00000001 +#define KRB5_TC_NOTICKET 0x00000002 typedef AuthorizationData krb5_authdata; From b3797f428b9e8f84ffc788f6ddae9f3afb776831 Mon Sep 17 00:00:00 2001 From: Asanka Herath Date: Fri, 10 Sep 2010 14:03:15 -0400 Subject: [PATCH 39/41] Add krb5_c_random_make_octets() to mit_glue.c --- lib/krb5/libkrb5-exports.def.in | 1 + lib/krb5/mit_glue.c | 6 ++++++ 2 files changed, 7 insertions(+) diff --git a/lib/krb5/libkrb5-exports.def.in b/lib/krb5/libkrb5-exports.def.in index c12c08233..0d94fbb8a 100644 --- a/lib/krb5/libkrb5-exports.def.in +++ b/lib/krb5/libkrb5-exports.def.in @@ -77,6 +77,7 @@ EXPORTS krb5_c_make_random_key krb5_c_prf krb5_c_prf_length + krb5_c_random_make_octets krb5_c_set_checksum krb5_c_valid_cksumtype krb5_c_valid_enctype diff --git a/lib/krb5/mit_glue.c b/lib/krb5/mit_glue.c index 52ecfd1a0..7ed91b076 100644 --- a/lib/krb5/mit_glue.c +++ b/lib/krb5/mit_glue.c @@ -378,6 +378,12 @@ krb5_c_prf(krb5_context context, return ret; } +KRB5_LIB_FUNCTION krb5_error_code KRB5_LIB_CALL +krb5_c_random_make_octets(krb5_context context, krb5_data * data) +{ + return krb5_generate_random_keyblock(context, data->length, data->data); +} + /** * MIT compat glue * From 8232a8dc4c31e6d0ca9659b554ea0a7b1aa0e7a0 Mon Sep 17 00:00:00 2001 From: "Asanka C. Herath" Date: Sun, 12 Sep 2010 22:44:21 -0400 Subject: [PATCH 40/41] Windows: packages/windows/sdk The Makefile in this directory pulls in the SDK into a separate directory tree. --- packages/windows/sdk/NTMakefile | 98 +++++++++++++++++++++++++++++++++ 1 file changed, 98 insertions(+) create mode 100644 packages/windows/sdk/NTMakefile diff --git a/packages/windows/sdk/NTMakefile b/packages/windows/sdk/NTMakefile new file mode 100644 index 000000000..9812ef64f --- /dev/null +++ b/packages/windows/sdk/NTMakefile @@ -0,0 +1,98 @@ +######################################################################## +# +# Copyright (c) 2009, Secure Endpoints Inc. +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions +# are met: +# +# - Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# - Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in +# the documentation and/or other materials provided with the +# distribution. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS +# FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE +# COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +# BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +# CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN +# ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +# POSSIBILITY OF SUCH DAMAGE. +# + +RELDIR=packages\sdk + +!include ../../../windows/NTMakefile.w32 + +# This package pulls in all the SDK components into a single directory +# structure. + +prep:: mksdkdirs + +mksdkdirs: +! if !exist($(SDKSRCDIR)) + $(MKDIR) $(SDKSRCDIR) +! endif +! if !exist($(SDKINCDIR)) + $(MKDIR) $(SDKINCDIR) +! endif +! if !exist($(SDKINCDIR)\krb5) + $(MKDIR) $(SDKINCDIR)\krb5 +! endif +! if !exist($(SDKINCDIR)\kadm5) + $(MKDIR) $(SDKINCDIR)\kadm5 +! endif +! if !exist($(SDKLIBDIR)) + $(MKDIR) $(SDKLIBDIR) +! endif + +INCFILES=\ + $(SDKINCDIR)\com_err.h \ + $(SDKINCDIR)\com_right.h \ + $(SDKINCDIR)\krb5\asn1_err.h \ + $(SDKINCDIR)\krb5\heim_err.h \ + $(SDKINCDIR)\krb5\k524_err.h \ + $(SDKINCDIR)\krb5\krb5-protos.h \ + $(SDKINCDIR)\krb5\krb5-types.h \ + $(SDKINCDIR)\krb5\krb5-v4compat.h \ + $(SDKINCDIR)\krb5\krb5.h \ + $(SDKINCDIR)\krb5\krb5_asn1.h \ + $(SDKINCDIR)\krb5\krb5_ccapi.h \ + $(SDKINCDIR)\krb5\krb5_err.h \ + $(SDKINCDIR)\krb5\krb5_locl.h \ + $(SDKINCDIR)\kadm5\kadm5_err.h \ + $(SDKINCDIR)\kadm5\kadm5-protos.h \ + +LIBFILES=\ + $(SDKLIBDIR)\heimdal.lib \ + $(SDKLIBDIR)\libcom_err.lib \ + +all:: $(INCFILES) $(LIBFILES) + +.SUFFIXES: .h .c .lib + +{$(LIBDIR)}.lib{$(SDKLIBDIR)}.lib: + $(CP) $** $@ + +{$(INCDIR)}.h{$(SDKINCDIR)}.h: + $(CP) $** $@ + +{$(INCDIR)}.h{$(SDKINCDIR)\krb5}.h: + $(CP) $** $@ + +{$(INCDIR)\kadm5}.h{$(SDKINCDIR)\kadm5}.h: + $(CP) $** $@ + +clean:: + -$(RM) $(SDKINCDIR)\*.* + -$(RM) $(SDKINCDIR)\krb5\*.* + -$(RM) $(SDKLIBDIR)\*.* From 079cbf7a1a17c03fadb1d15f267befe62b3ba4d1 Mon Sep 17 00:00:00 2001 From: "Asanka C. Herath" Date: Sun, 12 Sep 2010 22:44:48 -0400 Subject: [PATCH 41/41] Windows: Build the SDK --- packages/windows/NTMakefile | 2 +- windows/NTMakefile.w32 | 4 ++++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/packages/windows/NTMakefile b/packages/windows/NTMakefile index cb2fec6d8..fee460f9b 100644 --- a/packages/windows/NTMakefile +++ b/packages/windows/NTMakefile @@ -30,7 +30,7 @@ # RELDIR=packages\windows -SUBDIRS=kfw_shim +SUBDIRS=kfw_shim sdk !include ../../windows/NTMakefile.w32 diff --git a/windows/NTMakefile.w32 b/windows/NTMakefile.w32 index f719fd8f0..86b73debb 100644 --- a/windows/NTMakefile.w32 +++ b/windows/NTMakefile.w32 @@ -81,6 +81,10 @@ BINDIR =$(DESTDIR)\bin SBINDIR=$(BINDIR) LIBEXECDIR=$(BINDIR) ASMDIR=$(BINDIR) +SDKDIR=$(SRC)\out +SDKINCDIR=$(SRC)\out\inc +SDKLIBDIR=$(SRC)\out\lib\$(CPU) +SDKSRCDIR=$(SRC)\out\src !ifdef RELDIR SRCDIR =$(SRC)\$(RELDIR)