dst_test.c revision a9bc95f22ef2dd4a12e79be99412c9f18b814a5d
431a83fb29482c5170b3e4026e59bb14849a6707Tinderbox User * Copyright (C) 1999, 2000 Internet Software Consortium.
40f53fa8d9c6a4fc38c0014495e7a42b08f52481David Lawrence * Permission to use, copy, modify, and distribute this software for any
ec5347e2c775f027573ce5648b910361aa926c01Automatic Updater * purpose with or without fee is hereby granted, provided that the above
5d82424f5d3c77c092c111b935041fd3dc4b3e98Andreas Gustafsson * copyright notice and this permission notice appear in all copies.
40f53fa8d9c6a4fc38c0014495e7a42b08f52481David Lawrence * THE SOFTWARE IS PROVIDED "AS IS" AND INTERNET SOFTWARE CONSORTIUM DISCLAIMS
dafcb997e390efa4423883dafd100c975c4095d6Mark Andrews * ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES
dafcb997e390efa4423883dafd100c975c4095d6Mark Andrews * OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL INTERNET SOFTWARE
dafcb997e390efa4423883dafd100c975c4095d6Mark Andrews * CONSORTIUM BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
dafcb997e390efa4423883dafd100c975c4095d6Mark Andrews * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
dafcb997e390efa4423883dafd100c975c4095d6Mark Andrews * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS
dafcb997e390efa4423883dafd100c975c4095d6Mark Andrews * ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
9cd6d409b78a6f833b681c13a68fbdc7c024fe66David Lawrence#include <isc/string.h> /* Required for HP/UX (and others?) */
b356893425f18a2399771faa875e91318f204fb5Andreas Gustafsson isc_buffer_init(&sigbuf, sig, sizeof(sig));
b356893425f18a2399771faa875e91318f204fb5Andreas Gustafsson /* Advance 1 byte for fun */
b356893425f18a2399771faa875e91318f204fb5Andreas Gustafsson isc_buffer_init(&databuf, data, strlen(data));
ec3f1d35170225c74d11c27bb184e250d150b209Tatuya JINMEI 神明達哉 isc_buffer_usedregion(&databuf, &datareg);
b356893425f18a2399771faa875e91318f204fb5Andreas Gustafsson ret = dst_key_sign(DST_SIGMODE_ALL, key, NULL, &datareg, &sigbuf);
b356893425f18a2399771faa875e91318f204fb5Andreas Gustafsson printf("sign(%d) returned: %s\n", dst_key_alg(key),
4423c99613db1399dbb5c51e86ef0d351a1418c2Mark Andrews ret = dst_key_verify(DST_SIGMODE_ALL, key, NULL, &datareg, &sigreg);
4423c99613db1399dbb5c51e86ef0d351a1418c2Mark Andrews printf("verify(%d) returned: %s\n", dst_key_alg(key),
0874abad14e3e9ecfc3dc1a1a2b9969f2f027724Mark Andrews isc_buffer_init(&buf1, buffer1, sizeof(buffer1));
5d82424f5d3c77c092c111b935041fd3dc4b3e98Andreas Gustafsson printf("todns(%d) returned: %s\n", dst_key_alg(key),
40f53fa8d9c6a4fc38c0014495e7a42b08f52481David Lawrence ret = dst_key_fromdns(dst_key_name(key), &buf1, mctx, &newkey);
c53a5699c8242636fd913a4d07b4447efebe3bbfMark Andrews printf("fromdns(%d) returned: %s\n", dst_key_alg(key),
5d82424f5d3c77c092c111b935041fd3dc4b3e98Andreas Gustafsson isc_buffer_init(&buf2, buffer2, sizeof(buffer2));
87cafc5e70f79f2586d067fbdd64f61bbab069d2David Lawrence printf("todns2(%d) returned: %s\n", dst_key_alg(key),
5d82424f5d3c77c092c111b935041fd3dc4b3e98Andreas Gustafsson memcmp(r1.base, r2.base, r1.length) == 0);
5d82424f5d3c77c092c111b935041fd3dc4b3e98Andreas Gustafsson printf("compare(%d): %s\n", dst_key_alg(key),
87cafc5e70f79f2586d067fbdd64f61bbab069d2David Lawrenceio(dns_name_t *name, int id, int alg, int type, isc_mem_t *mctx) {
5d82424f5d3c77c092c111b935041fd3dc4b3e98Andreas Gustafsson ret = dst_key_fromfile(name, id, alg, type, mctx, &key);
5d82424f5d3c77c092c111b935041fd3dc4b3e98Andreas Gustafsson printf("read(%d) returned: %s\n", alg, isc_result_totext(ret));
5d82424f5d3c77c092c111b935041fd3dc4b3e98Andreas Gustafsson printf("write(%d) returned: %s\n", alg, isc_result_totext(ret));
5d82424f5d3c77c092c111b935041fd3dc4b3e98Andreas Gustafssondh(dns_name_t *name1, int id1, dns_name_t *name2, int id2, isc_mem_t *mctx) {
8eaa51a6991ea6bc6c9db0b907beacde8dd1fed2Andreas Gustafsson unsigned char array1[1024], array2[1024];
8eaa51a6991ea6bc6c9db0b907beacde8dd1fed2Andreas Gustafsson ret = dst_key_fromfile(name1, id1, alg, type, mctx, &key1);
6526fd032fc418411da3af4201214e95c113d3e2Mark Andrews printf("read(%d) returned: %s\n", alg, isc_result_totext(ret));
8eaa51a6991ea6bc6c9db0b907beacde8dd1fed2Andreas Gustafsson ret = dst_key_fromfile(name2, id2, alg, type, mctx, &key2);
6526fd032fc418411da3af4201214e95c113d3e2Mark Andrews printf("read(%d) returned: %s\n", alg, isc_result_totext(ret));
6526fd032fc418411da3af4201214e95c113d3e2Mark Andrews printf("write(%d) returned: %s\n", alg, isc_result_totext(ret));
4423c99613db1399dbb5c51e86ef0d351a1418c2Mark Andrews printf("write(%d) returned: %s\n", alg, isc_result_totext(ret));
4423c99613db1399dbb5c51e86ef0d351a1418c2Mark Andrews printf("computesecret() returned: %s\n", isc_result_totext(ret));
8eaa51a6991ea6bc6c9db0b907beacde8dd1fed2Andreas Gustafsson ret = dst_key_computesecret(key2, key1, &b2);
8eaa51a6991ea6bc6c9db0b907beacde8dd1fed2Andreas Gustafsson printf("computesecret() returned: %s\n", isc_result_totext(ret));
6526fd032fc418411da3af4201214e95c113d3e2Mark Andrews if (r1.length != r2.length || memcmp(r1.base, r2.base, r1.length) != 0)
8eaa51a6991ea6bc6c9db0b907beacde8dd1fed2Andreas Gustafsson ret = dst_key_generate(dns_rootname, alg, 512, 0, 0, 0, mctx, &key);
4c577cbd1efc14156751e5b2ced7a866871a2f1aMark Andrews printf("generate(%d) returned: %s\n", alg, isc_result_totext(ret));
8eaa51a6991ea6bc6c9db0b907beacde8dd1fed2Andreas Gustafsson unsigned int i;
9cd6d409b78a6f833b681c13a68fbdc7c024fe66David Lawrence isc_buffer_init(&databuf, data, sizeof(data));
9cd6d409b78a6f833b681c13a68fbdc7c024fe66David Lawrence ret = dst_random_get(sizeof(data), &databuf);
9cd6d409b78a6f833b681c13a68fbdc7c024fe66David Lawrence printf("random() returned: %s\n", isc_result_totext(ret));
8eaa51a6991ea6bc6c9db0b907beacde8dd1fed2Andreas Gustafsson for (i = 0; i < sizeof data; i++)
4844ed026a9b5a91044e76399cee80a6514cbf0dMark Andrews dns_name_fromtext(name, &b, NULL, ISC_FALSE, NULL);
4844ed026a9b5a91044e76399cee80a6514cbf0dMark Andrews io(name, 6204, DST_ALG_DSA, DST_TYPE_PRIVATE|DST_TYPE_PUBLIC, mctx);
4844ed026a9b5a91044e76399cee80a6514cbf0dMark Andrews io(name, 54622, DST_ALG_RSA, DST_TYPE_PRIVATE|DST_TYPE_PUBLIC, mctx);
4844ed026a9b5a91044e76399cee80a6514cbf0dMark Andrews io(name, 0, DST_ALG_DSA, DST_TYPE_PRIVATE|DST_TYPE_PUBLIC, mctx);
4844ed026a9b5a91044e76399cee80a6514cbf0dMark Andrews io(name, 0, DST_ALG_RSA, DST_TYPE_PRIVATE|DST_TYPE_PUBLIC, mctx);
bfbd478cdbd57c1e03c49932cad15b7d6344d709Mark Andrews dns_name_fromtext(name, &b, NULL, ISC_FALSE, NULL);
87cafc5e70f79f2586d067fbdd64f61bbab069d2David Lawrence/* isc_mem_stats(mctx, stdout);*/