+++ /dev/null
-/*
- * Copyright (C) 2010, 2013, 2016 Internet Systems Consortium, Inc. ("ISC")
- *
- * This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
- * file, You can obtain one at http://mozilla.org/MPL/2.0/.
- */
-
-/* $Id: t_hashes.c,v 1.5 2010/10/04 22:27:41 marka Exp $ */
-
-/*
- * -d1 or larger shows hash or HMAC result even if correct
- */
-
-#include <config.h>
-
-#include <stdlib.h>
-
-#include <isc/hmacmd5.h>
-#include <isc/hmacsha.h>
-#include <isc/md5.h>
-#include <isc/print.h>
-#include <isc/sha1.h>
-#include <isc/string.h>
-#include <isc/util.h>
-
-#include <pk11/site.h>
-
-#include <tests/t_api.h>
-
-
-static int nprobs;
-
-typedef void(*HASH_INIT)(void *);
-typedef void(*HMAC_INIT)(void *, const unsigned char *, unsigned int);
-typedef void(*UPDATE)(void *, const unsigned char *, unsigned int);
-typedef void(*FINAL)(void *, const unsigned char *);
-typedef void(*SIGN)(void *, const unsigned char *, unsigned int);
-
-typedef struct {
- const char *name;
- const unsigned char *key;
- const unsigned int key_len;
- const unsigned char *str;
- const unsigned int str_len;
-} IN_;
-#define STR_INIT(s) (const unsigned char *)(s), sizeof(s)-1
-
-
-union {
- unsigned char b[1024];
-#ifndef PK11_MD5_DISABLE
- unsigned char md5[16];
-#endif
- unsigned char sha1[ISC_SHA1_DIGESTLENGTH];
- unsigned char sha224[ISC_SHA224_DIGESTLENGTH];
- unsigned char sha256[ISC_SHA256_DIGESTLENGTH];
- unsigned char sha384[ISC_SHA384_DIGESTLENGTH];
- unsigned char sha512[ISC_SHA512_DIGESTLENGTH];
-} dbuf;
-#define DIGEST_FILL 0xdf
-
-typedef struct {
- const char *str;
- const unsigned int digest_len;
-} OUT_;
-
-
-/*
- * two ad hoc hash examples
- */
-static IN_ abc = { "\"abc\"", NULL, 0, STR_INIT("abc")};
-static OUT_ abc_sha1 = {
- "a9993e364706816aba3e25717850c26c9cd0d89d",
- ISC_SHA1_DIGESTLENGTH};
-static OUT_ abc_sha224 = {
- "23097d223405d8228642a477bda255b32aadbce4bda0b3f7e36c9da7",
- ISC_SHA224_DIGESTLENGTH};
-#ifndef PK11_MD5_DISABLE
-static OUT_ abc_md5 = {
- "900150983cd24fb0d6963f7d28e17f72",
- 16};
-#endif
-
-static IN_ abc_blah = { "\"abcdbc...\"", NULL, 0,
- STR_INIT("abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopq")};
-static OUT_ abc_blah_sha1 = {
- "84983e441c3bd26ebaae4aa1f95129e5e54670f1",
- ISC_SHA1_DIGESTLENGTH};
-static OUT_ abc_blah_sha224 = {
- "75388b16512776cc5dba5da1fd890150b0c6455cb4f58b1952522525",
- ISC_SHA224_DIGESTLENGTH};
-#ifndef PK11_MD5_DISABLE
-static OUT_ abc_blah_md5 = {
- "8215ef0796a20bcaaae116d3876c664a",
- 16};
-
-/*
- * three HMAC-md5 examples from RFC 2104
- */
-static const unsigned char rfc2104_1_key[16] = {
- 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b,
- 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b};
-static IN_ rfc2104_1 = {"RFC 2104 #1", rfc2104_1_key, sizeof(rfc2104_1_key),
- STR_INIT("Hi There")};
-static OUT_ rfc2104_1_hmac = {
- "9294727a3638bb1c13f48ef8158bfc9d",
- 16};
-
-static IN_ rfc2104_2 = {"RFC 2104 #2", STR_INIT("Jefe"),
- STR_INIT("what do ya want for nothing?")};
-static OUT_ rfc2104_2_hmac = {
- "750c783e6ab0b503eaa86e310a5db738",
- 16};
-
-static const unsigned char rfc2104_3_key[16] = {
- 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA,
- 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA, 0xAA};
-static const unsigned char rfc2104_3_s[50] = {
- 0xDD, 0xDD, 0xDD, 0xDD, 0xDD, 0xDD, 0xDD, 0xDD,
- 0xDD, 0xDD, 0xDD, 0xDD, 0xDD, 0xDD, 0xDD, 0xDD,
- 0xDD, 0xDD, 0xDD, 0xDD, 0xDD, 0xDD, 0xDD, 0xDD,
- 0xDD, 0xDD, 0xDD, 0xDD, 0xDD, 0xDD, 0xDD, 0xDD,
- 0xDD, 0xDD, 0xDD, 0xDD, 0xDD, 0xDD, 0xDD, 0xDD,
- 0xDD, 0xDD, 0xDD, 0xDD, 0xDD, 0xDD, 0xDD, 0xDD,
- 0xDD, 0xDD};
-static IN_ rfc2104_3 = {"RFC 2104 #3", rfc2104_3_key, sizeof(rfc2104_3_key),
- rfc2104_3_s, sizeof(rfc2104_3_s)};
-static OUT_ rfc2104_3_hmac = {
- "56be34521d144c88dbb8c733f0e8b3f6",
- 16};
-#endif
-
-/*
- * four three HMAC-SHA tests cut-and-pasted from RFC 4634 starting on page 86
- */
-static const unsigned char rfc4634_1_key[20] = {
- 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b,
- 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b, 0x0b
-};
-static IN_ rfc4634_1 = {"RFC 4634 #1", rfc4634_1_key, sizeof(rfc4634_1_key),
- STR_INIT("Hi There")};
-static OUT_ rfc4634_1_sha1 = {
- "B617318655057264E28BC0B6FB378C8EF146BE00",
- ISC_SHA1_DIGESTLENGTH};
-static OUT_ rfc4634_1_sha224 = {
- "896FB1128ABBDF196832107CD49DF33F47B4B1169912BA4F53684B22",
- ISC_SHA224_DIGESTLENGTH};
-static OUT_ rfc4634_1_sha256 = {
- "B0344C61D8DB38535CA8AFCEAF0BF12B881DC200C9833DA726E9376C2E32"
- "CFF7",
- ISC_SHA256_DIGESTLENGTH};
-static OUT_ rfc4634_1_sha384 = {
- "AFD03944D84895626B0825F4AB46907F15F9DADBE4101EC682AA034C7CEB"
- "C59CFAEA9EA9076EDE7F4AF152E8B2FA9CB6",
- ISC_SHA384_DIGESTLENGTH};
-static OUT_ rfc4634_1_sha512 = {
- "87AA7CDEA5EF619D4FF0B4241A1D6CB02379F4E2CE4EC2787AD0B30545E1"
- "7CDEDAA833B7D6B8A702038B274EAEA3F4E4BE9D914EEB61F1702E696C20"
- "3A126854",
- ISC_SHA512_DIGESTLENGTH};
-
-static IN_ rfc4634_2 = {"RFC 4634 #2", STR_INIT("Jefe"),
- STR_INIT("what do ya want for nothing?")};
-static OUT_ rfc4634_2_sha1 = {
- "EFFCDF6AE5EB2FA2D27416D5F184DF9C259A7C79",
- ISC_SHA1_DIGESTLENGTH};
-static OUT_ rfc4634_2_sha224 = {
- "A30E01098BC6DBBF45690F3A7E9E6D0F8BBEA2A39E6148008FD05E44",
- ISC_SHA224_DIGESTLENGTH};
-static OUT_ rfc4634_2_sha256 = {
- "5BDCC146BF60754E6A042426089575C75A003F089D2739839DEC58B964EC"
- "3843",
- ISC_SHA256_DIGESTLENGTH};
-static OUT_ rfc4634_2_sha384 = {
- "AF45D2E376484031617F78D2B58A6B1B9C7EF464F5A01B47E42EC3736322"
- "445E8E2240CA5E69E2C78B3239ECFAB21649",
- ISC_SHA384_DIGESTLENGTH};
-static OUT_ rfc4634_2_sha512 = {
- "164B7A7BFCF819E2E395FBE73B56E0A387BD64222E831FD610270CD7EA25"
- "05549758BF75C05A994A6D034F65F8F0E6FDCAEAB1A34D4A6B4B636E070A"
- "38BCE737",
- ISC_SHA512_DIGESTLENGTH};
-
-static const unsigned char rfc4634_3_key[20] = {
- 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa,
- 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa
-};
-static const unsigned char rfc4634_3_s[50] = {
- 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd,
- 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd,
- 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd,
- 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd,
- 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd
-};
-static IN_ rfc4634_3 = {"RFC 4634 #3", rfc4634_3_key, sizeof(rfc4634_3_key),
- rfc4634_3_s, sizeof(rfc4634_3_s)};
-static OUT_ rfc4634_3_sha1 = {
- "125D7342B9AC11CD91A39AF48AA17B4F63F175D3",
- ISC_SHA1_DIGESTLENGTH};
-static OUT_ rfc4634_3_sha224 = {
- "7FB3CB3588C6C1F6FFA9694D7D6AD2649365B0C1F65D69D1EC8333EA",
- ISC_SHA224_DIGESTLENGTH};
-static OUT_ rfc4634_3_sha256 = {
- "773EA91E36800E46854DB8EBD09181A72959098B3EF8C122D9635514CED5"
- "65FE",
- ISC_SHA256_DIGESTLENGTH};
-static OUT_ rfc4634_3_sha384 = {
- "88062608D3E6AD8A0AA2ACE014C8A86F0AA635D947AC9FEBE83EF4E55966"
- "144B2A5AB39DC13814B94E3AB6E101A34F27",
- ISC_SHA384_DIGESTLENGTH};
-static OUT_ rfc4634_3_sha512 = {
- "FA73B0089D56A284EFB0F0756C890BE9B1B5DBDD8EE81A3655F83E33B227"
- "9D39BF3E848279A722C806B485A47E67C807B946A337BEE8942674278859"
- "E13292FB",
- ISC_SHA512_DIGESTLENGTH};
-
-static const unsigned char rfc4634_4_key[25] = {
- 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a,
- 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x10, 0x11, 0x12, 0x13, 0x14,
- 0x15, 0x16, 0x17, 0x18, 0x19
-};
-static const unsigned char rfc4634_4_s[50] = {
- 0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd,
- 0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd,
- 0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd,
- 0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd,
- 0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd, 0xcd
-};
-static IN_ rfc4634_4 = {"RFC 4634 #3", rfc4634_4_key, sizeof(rfc4634_4_key),
- rfc4634_4_s, sizeof(rfc4634_4_s)};
-static OUT_ rfc4634_4_sha1 = {
- "4C9007F4026250C6BC8414F9BF50C86C2D7235DA",
- ISC_SHA1_DIGESTLENGTH};
-static OUT_ rfc4634_4_sha224 = {
- "6C11506874013CAC6A2ABC1BB382627CEC6A90D86EFC012DE7AFEC5A",
- ISC_SHA224_DIGESTLENGTH};
-static OUT_ rfc4634_4_sha256 = {
- "82558A389A443C0EA4CC819899F2083A85F0FAA3E578F8077A2E3FF46729"
- "665B",
- ISC_SHA256_DIGESTLENGTH};
-static OUT_ rfc4634_4_sha384 = {
- "3E8A69B7783C25851933AB6290AF6CA77A9981480850009CC5577C6E1F57"
- "3B4E6801DD23C4A7D679CCF8A386C674CFFB",
- ISC_SHA384_DIGESTLENGTH};
-static OUT_ rfc4634_4_sha512 = {
- "B0BA465637458C6990E5A8C5F61D4AF7E576D97FF94B872DE76F8050361E"
- "E3DBA91CA5C11AA25EB4D679275CC5788063A5F19741120C4F2DE2ADEBEB"
- "10A298DD",
- ISC_SHA512_DIGESTLENGTH};
-
-
-
-static const char *
-d2str(char *buf, unsigned int buf_len,
- const unsigned char *d, unsigned int d_len)
-{
- unsigned int i, l;
-
- l = 0;
- for (i = 0; i < d_len && l < buf_len-4; ++i) {
- l += snprintf(&buf[l], buf_len-l, "%02x", d[i]);
- }
- if (l >= buf_len-3) {
- REQUIRE(buf_len > sizeof("..."));
- strcpy(&buf[l-sizeof(" ...")], " ...");
- }
- return buf;
-}
-
-
-
-/*
- * Compare binary digest or HMAC to string of hex digits from an RFC
- */
-static void
-ck(const char *name, const IN_ *in, const OUT_ *out)
-{
- char buf[sizeof(dbuf)*2+1];
- const char *str_name;
- unsigned int l;
-
- d2str(buf, sizeof(buf), dbuf.b, out->digest_len);
- str_name = in->name != NULL ? in->name : (const char *)in->str;
-
- if (T_debug != 0)
- t_info("%s(%s) = %s\n", name, str_name, buf);
-
- if (strcasecmp(buf, out->str)) {
- t_info("%s(%s)\n%9s %s\n%9s %s\n",
- name, str_name,
- "is", buf,
- "should be", out->str);
- ++nprobs;
- return;
- }
-
- /*
- * check that the hash or HMAC is no longer than we think it is
- */
- for (l = out->digest_len; l < sizeof(dbuf); ++l) {
- if (dbuf.b[l] != DIGEST_FILL) {
- t_info("byte #%d after end of %s(%s) changed to %02x\n",
- l-out->digest_len, name, str_name, dbuf.b[l]);
- ++nprobs;
- break;
- }
- }
-}
-
-
-
-static void
-t_hash(const char *hname, HASH_INIT init, UPDATE update, FINAL final,
- IN_ *in, OUT_ *out)
-{
- union {
- unsigned char b[1024];
- isc_sha1_t sha1;
-#ifndef PK11_MD5_DISABLE
- isc_md5_t md5;
-#endif
- } ctx;
-
- init(&ctx);
- update(&ctx, in->str, in->str_len);
- memset(dbuf.b, DIGEST_FILL, sizeof(dbuf));
- final(&ctx, dbuf.b);
- ck(hname, in, out);
-}
-
-
-
-/*
- * isc_sha224_final has a different calling sequence
- */
-static void
-t_sha224(IN_ *in, OUT_ *out)
-{
- isc_sha224_t ctx;
-
- memset(dbuf.b, DIGEST_FILL, sizeof(dbuf));
- isc_sha224_init(&ctx);
- isc_sha224_update(&ctx, in->str, in->str_len);
- memset(dbuf.b, DIGEST_FILL, sizeof(dbuf));
- isc_sha224_final(dbuf.b, &ctx);
- ck("SHA224", in, out);
-}
-
-
-
-static void
-#ifndef PK11_MD5_DISABLE
-t_hashes(IN_ *in, OUT_ *out_sha1, OUT_ *out_sha224, OUT_ *out_md5)
-#else
-t_hashes(IN_ *in, OUT_ *out_sha1, OUT_ *out_sha224)
-#endif
-{
- t_hash("SHA1", (HASH_INIT)isc_sha1_init, (UPDATE)isc_sha1_update,
- (FINAL)isc_sha1_final, in, out_sha1);
- t_sha224(in, out_sha224);
-#ifndef PK11_MD5_DISABLE
- t_hash("md5", (HASH_INIT)isc_md5_init, (UPDATE)isc_md5_update,
- (FINAL)isc_md5_final, in, out_md5);
-#endif
-}
-
-
-#ifndef PK11_MD5_DISABLE
-/*
- * isc_hmacmd5_sign has a different calling sequence
- */
-static void
-t_md5hmac(IN_ *in, OUT_ *out)
-{
- isc_hmacmd5_t ctx;
-
- isc_hmacmd5_init(&ctx, in->key, in->key_len);
- isc_hmacmd5_update(&ctx, in->str, in->str_len);
- memset(dbuf.b, DIGEST_FILL, sizeof(dbuf));
- isc_hmacmd5_sign(&ctx, dbuf.b);
- ck("HMAC-md5", in, out);
-}
-#endif
-
-
-static void
-t_hmac(const char *hname, HMAC_INIT init, UPDATE update, SIGN sign,
- IN_ *in, OUT_ *out)
-{
- union {
- unsigned char b[1024];
-#ifndef PK11_MD5_DISABLE
- isc_hmacmd5_t hmacmd5;
-#endif
- isc_hmacsha1_t hmacsha1;
- isc_hmacsha224_t hmacsha224;
- isc_hmacsha256_t hmacsha256;
- isc_hmacsha384_t hmacsha384;
- isc_hmacsha512_t hmacsha512;
- } ctx;
-
- init(&ctx, in->key, in->key_len);
- update(&ctx, in->str, in->str_len);
- memset(dbuf.b, DIGEST_FILL, sizeof(dbuf));
- sign(&ctx, dbuf.b, out->digest_len);
- ck(hname, in, out);
-}
-
-
-
-static void
-t_hmacs(IN_ *in, OUT_ *out_sha1, OUT_ *out_sha224, OUT_ *out_sha256,
- OUT_ *out_sha384, OUT_ *out_sha512)
-{
- t_hmac("HMAC-SHA1", (HMAC_INIT)isc_hmacsha1_init,
- (UPDATE)isc_hmacsha1_update, (SIGN)isc_hmacsha1_sign,
- in, out_sha1);
- t_hmac("HMAC-SHA224", (HMAC_INIT)isc_hmacsha224_init,
- (UPDATE)isc_hmacsha224_update, (SIGN)isc_hmacsha224_sign,
- in, out_sha224);
- t_hmac("HMAC-SHA256", (HMAC_INIT)isc_hmacsha256_init,
- (UPDATE)isc_hmacsha256_update, (SIGN)isc_hmacsha256_sign,
- in, out_sha256);
- t_hmac("HMAC-SHA384", (HMAC_INIT)isc_hmacsha384_init,
- (UPDATE)isc_hmacsha384_update, (SIGN)isc_hmacsha384_sign,
- in, out_sha384);
- t_hmac("HMAC-SHA512", (HMAC_INIT)isc_hmacsha512_init,
- (UPDATE)isc_hmacsha512_update, (SIGN)isc_hmacsha512_sign,
- in, out_sha512);
-}
-
-
-
-/*
- * This will almost never fail, and so there is no need for the extra noise
- * that would come from breaking it into several tests.
- */
-static void
-t1(void)
-{
- /*
- * two ad hoc hash examples
- */
-#ifndef PK11_MD5_DISABLE
- t_hashes(&abc, &abc_sha1, &abc_sha224, &abc_md5);
- t_hashes(&abc_blah, &abc_blah_sha1, &abc_blah_sha224, &abc_blah_md5);
-#else
- t_hashes(&abc, &abc_sha1, &abc_sha224);
- t_hashes(&abc_blah, &abc_blah_sha1, &abc_blah_sha224);
-#endif
-
-#ifndef PK11_MD5_DISABLE
- /*
- * three HMAC-md5 examples from RFC 2104
- */
- t_md5hmac(&rfc2104_1, &rfc2104_1_hmac);
- t_md5hmac(&rfc2104_2, &rfc2104_2_hmac);
- t_md5hmac(&rfc2104_3, &rfc2104_3_hmac);
-#endif
-
- /*
- * four HMAC-SHA tests from RFC 4634 starting on page 86
- */
- t_hmacs(&rfc4634_1, &rfc4634_1_sha1, &rfc4634_1_sha224,
- &rfc4634_1_sha256, &rfc4634_1_sha384, &rfc4634_1_sha512);
- t_hmacs(&rfc4634_2, &rfc4634_2_sha1, &rfc4634_2_sha224,
- &rfc4634_2_sha256, &rfc4634_2_sha384, &rfc4634_2_sha512);
- t_hmacs(&rfc4634_3, &rfc4634_3_sha1, &rfc4634_3_sha224,
- &rfc4634_3_sha256, &rfc4634_3_sha384, &rfc4634_3_sha512);
- t_hmacs(&rfc4634_4, &rfc4634_4_sha1, &rfc4634_4_sha224,
- &rfc4634_4_sha256, &rfc4634_4_sha384, &rfc4634_4_sha512);
-
- if (nprobs != 0)
- t_result(T_FAIL);
- else
- t_result(T_PASS);
-}
-
-
-testspec_t T_testlist[] = {
- { (PFV) t1, "hashes" },
- { (PFV) 0, NULL }
-};
-
-#ifdef WIN32
-int
-main(int argc, char **argv) {
- t_settests(T_testlist);
- return (t_main(argc, argv));
-}
-#endif
+++ /dev/null
-# Microsoft Developer Studio Generated NMAKE File, Based on t_hashes.dsp
-!IF "$(CFG)" == ""
-CFG=t_hashes - @PLATFORM@ Debug
-!MESSAGE No configuration specified. Defaulting to t_hashes - @PLATFORM@ Debug.
-!ENDIF
-
-!IF "$(CFG)" != "t_hashes - @PLATFORM@ Release" && "$(CFG)" != "t_hashes - @PLATFORM@ Debug"
-!MESSAGE Invalid configuration "$(CFG)" specified.
-!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 "t_hashes.mak" CFG="t_hashes - @PLATFORM@ Debug"
-!MESSAGE
-!MESSAGE Possible choices for configuration are:
-!MESSAGE
-!MESSAGE "t_hashes - @PLATFORM@ Release" (based on "@PLATFORM@ (x86) Console Application")
-!MESSAGE "t_hashes - @PLATFORM@ Debug" (based on "@PLATFORM@ (x86) Console Application")
-!MESSAGE
-!ERROR An invalid configuration is specified.
-!ENDIF
-
-!IF "$(OS)" == "Windows_NT"
-NULL=
-!ELSE
-NULL=nul
-!ENDIF
-
-CPP=cl.exe
-RSC=rc.exe
-LIBXML=@LIBXML2_LIB@
-
-!IF "$(CFG)" == "t_hashes - @PLATFORM@ Release"
-_VC_MANIFEST_INC=0
-_VC_MANIFEST_BASENAME=__VC80
-!ELSE
-_VC_MANIFEST_INC=1
-_VC_MANIFEST_BASENAME=__VC80.Debug
-!ENDIF
-
-####################################################
-# Specifying name of temporary resource file used only in incremental builds:
-
-!if "$(_VC_MANIFEST_INC)" == "1"
-_VC_MANIFEST_AUTO_RES=$(_VC_MANIFEST_BASENAME).auto.res
-!else
-_VC_MANIFEST_AUTO_RES=
-!endif
-
-####################################################
-# _VC_MANIFEST_EMBED_EXE - command to embed manifest in EXE:
-
-!if "$(_VC_MANIFEST_INC)" == "1"
-
-#MT_SPECIAL_RETURN=1090650113
-#MT_SPECIAL_SWITCH=-notify_resource_update
-MT_SPECIAL_RETURN=0
-MT_SPECIAL_SWITCH=
-_VC_MANIFEST_EMBED_EXE= \
-if exist $@.manifest mt.exe -manifest $@.manifest -out:$(_VC_MANIFEST_BASENAME).auto.manifest $(MT_SPECIAL_SWITCH) & \
-if "%ERRORLEVEL%" == "$(MT_SPECIAL_RETURN)" \
-rc /r $(_VC_MANIFEST_BASENAME).auto.rc & \
-link $** /out:$@ $(LFLAGS)
-
-!else
-
-_VC_MANIFEST_EMBED_EXE= \
-if exist $@.manifest mt.exe -manifest $@.manifest -outputresource:$@;1
-
-!endif
-
-####################################################
-# _VC_MANIFEST_EMBED_DLL - command to embed manifest in DLL:
-
-!if "$(_VC_MANIFEST_INC)" == "1"
-
-#MT_SPECIAL_RETURN=1090650113
-#MT_SPECIAL_SWITCH=-notify_resource_update
-MT_SPECIAL_RETURN=0
-MT_SPECIAL_SWITCH=
-_VC_MANIFEST_EMBED_EXE= \
-if exist $@.manifest mt.exe -manifest $@.manifest -out:$(_VC_MANIFEST_BASENAME).auto.manifest $(MT_SPECIAL_SWITCH) & \
-if "%ERRORLEVEL%" == "$(MT_SPECIAL_RETURN)" \
-rc /r $(_VC_MANIFEST_BASENAME).auto.rc & \
-link $** /out:$@ $(LFLAGS)
-
-!else
-
-_VC_MANIFEST_EMBED_EXE= \
-if exist $@.manifest mt.exe -manifest $@.manifest -outputresource:$@;2
-
-!endif
-####################################################
-# _VC_MANIFEST_CLEAN - command to clean resources files generated temporarily:
-
-!if "$(_VC_MANIFEST_INC)" == "1"
-
-_VC_MANIFEST_CLEAN=-del $(_VC_MANIFEST_BASENAME).auto.res \
- $(_VC_MANIFEST_BASENAME).auto.rc \
- $(_VC_MANIFEST_BASENAME).auto.manifest
-
-!else
-
-_VC_MANIFEST_CLEAN=
-
-!endif
-
-!IF "$(CFG)" == "t_hashes - @PLATFORM@ Release"
-
-OUTDIR=.\Release
-INTDIR=.\Release
-
-!IF "$(RECURSE)" == "0"
-
-ALL : "..\..\..\..\Build\Release\t_hashes.exe"
-
-!ELSE
-
-ALL : "libtests - @PLATFORM@ Release" "libisc - @PLATFORM@ Release" "..\..\..\..\Build\Release\t_hashes.exe"
-
-!ENDIF
-
-!IF "$(RECURSE)" == "1"
-CLEAN :"libisc - @PLATFORM@ ReleaseCLEAN" "libtests - @PLATFORM@ ReleaseCLEAN"
-!ELSE
-CLEAN :
-!ENDIF
- -@erase "$(INTDIR)\t_hashes.obj"
- -@erase "$(INTDIR)\vc60.idb"
- -@erase "..\..\..\..\Build\Release\t_hashes.exe"
- -@$(_VC_MANIFEST_CLEAN)
-
-"$(OUTDIR)" :
- if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)"
-
-CPP_PROJ=/nologo /MD /W3 @COPTX@ @COPTI@ /O2 /I "./" /I "../../../../" @LIBXML2_INC@ @OPENSSL_INC@ /I "../../../../lib/isc/win32" /I "../../../../lib/isc/win32/include" /I "../../../../lib/isc/include" /I "../../../../lib/tests/include" /D "WIN32" /D "NDEBUG" /D "__STDC__" /D "_CONSOLE" /D "_MBCS" /Fp"$(INTDIR)\t_hashes.pch" @COPTY@ /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\\" /FD /c
-BSC32=bscmake.exe
-BSC32_FLAGS=/nologo /o"$(OUTDIR)\t_hashes.bsc"
-BSC32_SBRS= \
-
-LINK32=link.exe
-LINK32_FLAGS=user32.lib advapi32.lib kernel32.lib ws2_32.lib ../../../../lib/isc/win32/Release/libisc.lib ../../../../lib/tests/win32/Release/libtests.lib $(LIBXML) /nologo /subsystem:console /incremental:no /pdb:"$(OUTDIR)\t_hashes.pdb" @MACHINE@ /out:"../../../../Build/Release/t_hashes.exe"
-LINK32_OBJS= \
- "$(INTDIR)\t_hashes.obj" \
- "..\..\..\..\lib\isc\win32\Release\libisc.lib" \
- "..\..\..\..\lib\tests\win32\Release\libtests.lib"
-
-"..\..\..\..\Build\Release\t_hashes.exe" : "$(OUTDIR)" $(DEF_FILE) $(LINK32_OBJS)
- $(LINK32) @<<
- $(LINK32_FLAGS) $(LINK32_OBJS)
-<<
- $(_VC_MANIFEST_EMBED_EXE)
-
-!ELSEIF "$(CFG)" == "t_hashes - @PLATFORM@ Debug"
-
-OUTDIR=.\Debug
-INTDIR=.\Debug
-# Begin Custom Macros
-OutDir=.\Debug
-# End Custom Macros
-
-!IF "$(RECURSE)" == "0"
-
-ALL : "..\..\..\..\Build\Debug\t_hashes.exe" "$(OUTDIR)\t_hashes.bsc"
-
-!ELSE
-
-ALL : "libtests - @PLATFORM@ Debug" "libisc - @PLATFORM@ Debug" "..\..\..\..\Build\Debug\t_hashes.exe" "$(OUTDIR)\t_hashes.bsc"
-
-!ENDIF
-
-!IF "$(RECURSE)" == "1"
-CLEAN :"libisc - @PLATFORM@ DebugCLEAN" "libtests - @PLATFORM@ DebugCLEAN"
-!ELSE
-CLEAN :
-!ENDIF
- -@erase "$(INTDIR)\t_hashes.obj"
- -@erase "$(INTDIR)\t_hashes.sbr"
- -@erase "$(INTDIR)\vc60.idb"
- -@erase "$(INTDIR)\vc60.pdb"
- -@erase "$(OUTDIR)\t_hashes.bsc"
- -@erase "$(OUTDIR)\t_hashes.map"
- -@erase "$(OUTDIR)\t_hashes.pdb"
- -@erase "..\..\..\..\Build\Debug\t_hashes.exe"
- -@erase "..\..\..\..\Build\Debug\t_hashes.ilk"
- -@$(_VC_MANIFEST_CLEAN)
-
-"$(OUTDIR)" :
- if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)"
-
-CPP_PROJ=/nologo /MDd /W3 /Gm @COPTX@ @COPTI@ /ZI /Od /I "./" /I "../../../../" @LIBXML2_INC@ @OPENSSL_INC@ /I "../../../../lib/isc/win32" /I "../../../../lib/isc/win32/include" /I "../../../../lib/isc/include" /I "../../../../lib/tests/include" /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /D "i386" /FR"$(INTDIR)\\" /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\\" /FD /GZ /c
-BSC32=bscmake.exe
-BSC32_FLAGS=/nologo /o"$(OUTDIR)\t_hashes.bsc"
-BSC32_SBRS= \
- "$(INTDIR)\t_hashes.sbr"
-
-"$(OUTDIR)\t_hashes.bsc" : "$(OUTDIR)" $(BSC32_SBRS)
- $(BSC32) @<<
- $(BSC32_FLAGS) $(BSC32_SBRS)
-<<
-
-LINK32=link.exe
-LINK32_FLAGS=user32.lib advapi32.lib kernel32.lib ws2_32.lib ../../../../lib/isc/win32/Debug/libisc.lib ../../../../lib/tests/win32/Debug/libtests.lib $(LIBXML) /nologo /subsystem:console /incremental:yes /pdb:"$(OUTDIR)\t_hashes.pdb" /map:"$(INTDIR)\t_hashes.map" /debug @MACHINE@ /out:"../../../../Build/Debug/t_hashes.exe" /pdbtype:sept
-LINK32_OBJS= \
- "$(INTDIR)\t_hashes.obj" \
- "..\..\..\..\lib\isc\win32\Debug\libisc.lib" \
- "..\..\..\..\lib\tests\win32\Debug\libtests.lib"
-
-"..\..\..\..\Build\Debug\t_hashes.exe" : "$(OUTDIR)" $(DEF_FILE) $(LINK32_OBJS)
- $(LINK32) @<<
- $(LINK32_FLAGS) $(LINK32_OBJS)
-<<
- $(_VC_MANIFEST_EMBED_EXE)
-
-!ENDIF
-
-.c{$(INTDIR)}.obj::
- $(CPP) @<<
- $(CPP_PROJ) $<
-<<
-
-.cpp{$(INTDIR)}.obj::
- $(CPP) @<<
- $(CPP_PROJ) $<
-<<
-
-.cxx{$(INTDIR)}.obj::
- $(CPP) @<<
- $(CPP_PROJ) $<
-<<
-
-.c{$(INTDIR)}.sbr::
- $(CPP) @<<
- $(CPP_PROJ) $<
-<<
-
-.cpp{$(INTDIR)}.sbr::
- $(CPP) @<<
- $(CPP_PROJ) $<
-<<
-
-.cxx{$(INTDIR)}.sbr::
- $(CPP) @<<
- $(CPP_PROJ) $<
-<<
-
-
-!IF "$(NO_EXTERNAL_DEPS)" != "1"
-!IF EXISTS("t_hashes.dep")
-!INCLUDE "t_hashes.dep"
-!ELSE
-!MESSAGE Warning: cannot find "t_hashes.dep"
-!ENDIF
-!ENDIF
-
-
-!IF "$(CFG)" == "t_hashes - @PLATFORM@ Release" || "$(CFG)" == "t_hashes - @PLATFORM@ Debug"
-SOURCE=..\t_hashes.c
-
-!IF "$(CFG)" == "t_hashes - @PLATFORM@ Release"
-
-
-"$(INTDIR)\t_hashes.obj" : $(SOURCE) "$(INTDIR)"
- $(CPP) $(CPP_PROJ) $(SOURCE)
-
-
-!ELSEIF "$(CFG)" == "t_hashes - @PLATFORM@ Debug"
-
-
-"$(INTDIR)\t_hashes.obj" "$(INTDIR)\t_hashes.sbr" : $(SOURCE) "$(INTDIR)"
- $(CPP) $(CPP_PROJ) $(SOURCE)
-
-
-!ENDIF
-
-!IF "$(CFG)" == "t_hashes - @PLATFORM@ Release"
-
-"libisc - @PLATFORM@ Release" :
- cd "..\..\..\..\lib\isc\win32"
- $(MAKE) /$(MAKEFLAGS) /F ".\libisc.mak" CFG="libisc - @PLATFORM@ Release"
- cd "..\..\..\bin\tests\hashes\win32"
-
-"libisc - @PLATFORM@ ReleaseCLEAN" :
- cd "..\..\..\..\lib\isc\win32"
- $(MAKE) /$(MAKEFLAGS) /F ".\libisc.mak" CFG="libisc - @PLATFORM@ Release" RECURSE=1 CLEAN
- cd "..\..\..\bin\tests\hashes\win32"
-
-!ELSEIF "$(CFG)" == "t_hashes - @PLATFORM@ Debug"
-
-"libisc - @PLATFORM@ Debug" :
- cd "..\..\..\..\lib\isc\win32"
- $(MAKE) /$(MAKEFLAGS) /F ".\libisc.mak" CFG="libisc - @PLATFORM@ Debug"
- cd "..\..\..\bin\tests\hashes\win32"
-
-"libisc - @PLATFORM@ DebugCLEAN" :
- cd "..\..\..\..\lib\isc\win32"
- $(MAKE) /$(MAKEFLAGS) /F ".\libisc.mak" CFG="libisc - @PLATFORM@ Debug" RECURSE=1 CLEAN
- cd "..\..\..\bin\tests\hashes\win32"
-
-!ENDIF
-
-!IF "$(CFG)" == "t_hashes - @PLATFORM@ Release"
-
-"libtests - @PLATFORM@ Release" :
- cd "..\..\..\..\lib\tests\win32"
- $(MAKE) /$(MAKEFLAGS) /F ".\libtests.mak" CFG="libtests - @PLATFORM@ Release"
- cd "..\..\..\bin\tests\hashes\win32"
-
-"libtests - @PLATFORM@ ReleaseCLEAN" :
- cd "..\..\..\..\lib\tests\win32"
- $(MAKE) /$(MAKEFLAGS) /F ".\libtests.mak" CFG="libtests - @PLATFORM@ Release" RECURSE=1 CLEAN
- cd "..\..\..\bin\tests\hashes\win32"
-
-!ELSEIF "$(CFG)" == "t_hashes - @PLATFORM@ Debug"
-
-"libtests - @PLATFORM@ Debug" :
- cd "..\..\..\..\lib\tests\win32"
- $(MAKE) /$(MAKEFLAGS) /F ".\libtests.mak" CFG="libtests - @PLATFORM@ Debug"
- cd "..\..\..\bin\tests\hashes\win32"
-
-"libtests - @PLATFORM@ DebugCLEAN" :
- cd "..\..\..\..\lib\tests\win32"
- $(MAKE) /$(MAKEFLAGS) /F ".\libtests.mak" CFG="libtests - @PLATFORM@ Debug" RECURSE=1 CLEAN
- cd "..\..\..\bin\tests\hashes\win32"
-
-!ENDIF
-
-
-!ENDIF
-
-####################################################
-# Commands to generate initial empty manifest file and the RC file
-# that references it, and for generating the .res file:
-
-$(_VC_MANIFEST_BASENAME).auto.res : $(_VC_MANIFEST_BASENAME).auto.rc
-
-$(_VC_MANIFEST_BASENAME).auto.rc : $(_VC_MANIFEST_BASENAME).auto.manifest
- type <<$@
-#include <winuser.h>
-1RT_MANIFEST"$(_VC_MANIFEST_BASENAME).auto.manifest"
-<< KEEP
-
-$(_VC_MANIFEST_BASENAME).auto.manifest :
- type <<$@
-<?xml version='1.0' encoding='UTF-8' standalone='yes'?>
-<assembly xmlns='urn:schemas-microsoft-com:asm.v1' manifestVersion='1.0'>
-</assembly>
-<< KEEP
+++ /dev/null
-<?xml version="1.0" encoding="utf-8"?>
-<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
- <ItemGroup Label="ProjectConfigurations">
- <ProjectConfiguration Include="Debug|@PLATFORM@">
- <Configuration>Debug</Configuration>
- <Platform>@PLATFORM@</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="Release|@PLATFORM@">
- <Configuration>Release</Configuration>
- <Platform>@PLATFORM@</Platform>
- </ProjectConfiguration>
- </ItemGroup>
- <PropertyGroup Label="Globals">
- <ProjectGuid>{14071120-84F6-4A6F-BF23-90EC5D0372CE}</ProjectGuid>
- <Keyword>Win32Proj</Keyword>
- <RootNamespace>t_hashes</RootNamespace>
- </PropertyGroup>
- <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|@PLATFORM@'" Label="Configuration">
- <ConfigurationType>Application</ConfigurationType>
- <UseDebugLibraries>true</UseDebugLibraries>
- <CharacterSet>MultiByte</CharacterSet>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|@PLATFORM@'" Label="Configuration">
- <ConfigurationType>Application</ConfigurationType>
- <UseDebugLibraries>false</UseDebugLibraries>
- <WholeProgramOptimization>true</WholeProgramOptimization>
- <CharacterSet>MultiByte</CharacterSet>
- </PropertyGroup>
- <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
- <ImportGroup Label="ExtensionSettings">
- </ImportGroup>
- <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|@PLATFORM@'">
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
- </ImportGroup>
- <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|@PLATFORM@'">
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
- </ImportGroup>
- <PropertyGroup Label="UserMacros" />
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|@PLATFORM@'">
- <LinkIncremental>true</LinkIncremental>
- <OutDir>..\..\..\..\Build\$(Configuration)\</OutDir>
- <IntDir>.\$(Configuration)\</IntDir>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|@PLATFORM@'">
- <LinkIncremental>false</LinkIncremental>
- <OutDir>..\..\..\..\Build\$(Configuration)\</OutDir>
- <IntDir>.\$(Configuration)\</IntDir>
- </PropertyGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|@PLATFORM@'">
- <ClCompile>
- <PrecompiledHeader>
- </PrecompiledHeader>
- <WarningLevel>Level3</WarningLevel>
- <Optimization>Disabled</Optimization>
- <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
- <FunctionLevelLinking>true</FunctionLevelLinking>
- <PrecompiledHeaderOutputFile>.\$(Configuration)\$(TargetName).pch</PrecompiledHeaderOutputFile>
- <AssemblerListingLocation>.\$(Configuration)\</AssemblerListingLocation>
- <ObjectFileName>.\$(Configuration)\</ObjectFileName>
- <ProgramDataBaseFileName>$(OutDir)$(TargetName).pdb</ProgramDataBaseFileName>
- <BrowseInformation>true</BrowseInformation>
- <AdditionalIncludeDirectories>.\;..\..\..\..\;@LIBXML2_INC@@OPENSSL_INC@..\..\..\..\lib\isc\win32;..\..\..\..\lib\isc\win32\include;..\..\..\..\lib\isc\include;..\..\..\..\lib\tests\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <CompileAs>CompileAsC</CompileAs>
- </ClCompile>
- <Link>
- <SubSystem>Console</SubSystem>
- <GenerateDebugInformation>true</GenerateDebugInformation>
- <OutputFile>..\..\..\..\Build\$(Configuration)\$(TargetName)$(TargetExt)</OutputFile>
- <AdditionalLibraryDirectories>..\..\..\..\lib\isc\win32\$(Configuration);..\..\..\..\lib\tests\win32\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
- <AdditionalDependencies>@LIBXML2_LIB@libisc.lib;libtests.lib;ws2_32.lib;%(AdditionalDependencies)</AdditionalDependencies>
- </Link>
- </ItemDefinitionGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|@PLATFORM@'">
- <ClCompile>
- <WarningLevel>Level3</WarningLevel>
- <PrecompiledHeader>
- </PrecompiledHeader>
- <Optimization>MaxSpeed</Optimization>
- <FunctionLevelLinking>true</FunctionLevelLinking>
- <IntrinsicFunctions>@INTRINSIC@</IntrinsicFunctions>
- <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
- <InlineFunctionExpansion>OnlyExplicitInline</InlineFunctionExpansion>
- <WholeProgramOptimization>false</WholeProgramOptimization>
- <StringPooling>true</StringPooling>
- <PrecompiledHeaderOutputFile>.\$(Configuration)\$(TargetName).pch</PrecompiledHeaderOutputFile>
- <AssemblerListingLocation>.\$(Configuration)\</AssemblerListingLocation>
- <ObjectFileName>.\$(Configuration)\</ObjectFileName>
- <ProgramDataBaseFileName>$(OutDir)$(TargetName).pdb</ProgramDataBaseFileName>
- <AdditionalIncludeDirectories>.\;..\..\..\..\;@LIBXML2_INC@@OPENSSL_INC@..\..\..\..\lib\isc\win32;..\..\..\..\lib\isc\win32\include;..\..\..\..\lib\isc\include;..\..\..\..\lib\tests\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
- <CompileAs>CompileAsC</CompileAs>
- </ClCompile>
- <Link>
- <SubSystem>Console</SubSystem>
- <GenerateDebugInformation>false</GenerateDebugInformation>
- <EnableCOMDATFolding>true</EnableCOMDATFolding>
- <OptimizeReferences>true</OptimizeReferences>
- <OutputFile>..\..\..\..\Build\$(Configuration)\$(TargetName)$(TargetExt)</OutputFile>
- <LinkTimeCodeGeneration>Default</LinkTimeCodeGeneration>
- <AdditionalLibraryDirectories>..\..\..\..\lib\isc\win32\$(Configuration);..\..\..\..\lib\tests\win32\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
- <AdditionalDependencies>@LIBXML2_LIB@libisc.lib;libtests.lib;ws2_32.lib;%(AdditionalDependencies)</AdditionalDependencies>
- </Link>
- </ItemDefinitionGroup>
- <ItemGroup>
- <ClCompile Include="..\t_hashes.c" />
- </ItemGroup>
- <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
- <ImportGroup Label="ExtensionTargets">
- </ImportGroup>
-</Project>