nsec3_50.c revision 6098d364b690cb9dabf96e9664c4689c8559bd2e
0c27b3fe77ac1d5094ba3521e8142d9e7973133fMark Andrews * Copyright (C) 2004 Internet Systems Consortium, Inc. ("ISC")
9ecea05b89aca9e8411ae5bb1ea7f185e06615a3Danny Mayer * Copyright (C) 2003 Internet Software Consortium.
0c27b3fe77ac1d5094ba3521e8142d9e7973133fMark Andrews * Permission to use, copy, modify, and distribute this software for any
0c27b3fe77ac1d5094ba3521e8142d9e7973133fMark Andrews * purpose with or without fee is hereby granted, provided that the above
9ecea05b89aca9e8411ae5bb1ea7f185e06615a3Danny Mayer * copyright notice and this permission notice appear in all copies.
70e5a7403f0e0a3bd292b8287c5fed5772c15270Automatic Updater * THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH
9ecea05b89aca9e8411ae5bb1ea7f185e06615a3Danny Mayer * REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
9ecea05b89aca9e8411ae5bb1ea7f185e06615a3Danny Mayer * AND FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT,
9ecea05b89aca9e8411ae5bb1ea7f185e06615a3Danny Mayer * INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
9ecea05b89aca9e8411ae5bb1ea7f185e06615a3Danny Mayer * LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
9ecea05b89aca9e8411ae5bb1ea7f185e06615a3Danny Mayer * OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
9ecea05b89aca9e8411ae5bb1ea7f185e06615a3Danny Mayer * PERFORMANCE OF THIS SOFTWARE.
2f1c460beaa1e372255e7a1b8aad8996f011816dMark Andrews * Copyright (C) 2004 Nominet, Ltd.
2f1c460beaa1e372255e7a1b8aad8996f011816dMark Andrews * Permission to use, copy, modify, and distribute this software for any
9ecea05b89aca9e8411ae5bb1ea7f185e06615a3Danny Mayer * purpose with or without fee is hereby granted, provided that the above
9ecea05b89aca9e8411ae5bb1ea7f185e06615a3Danny Mayer * copyright notice and this permission notice appear in all copies.
9ecea05b89aca9e8411ae5bb1ea7f185e06615a3Danny Mayer * THE SOFTWARE IS PROVIDED "AS IS" AND NOMINET DISCLAIMS ALL WARRANTIES WITH
9ecea05b89aca9e8411ae5bb1ea7f185e06615a3Danny Mayer * REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
9ecea05b89aca9e8411ae5bb1ea7f185e06615a3Danny Mayer * AND FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT,
9ecea05b89aca9e8411ae5bb1ea7f185e06615a3Danny Mayer * INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
9ecea05b89aca9e8411ae5bb1ea7f185e06615a3Danny Mayer * LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
9ecea05b89aca9e8411ae5bb1ea7f185e06615a3Danny Mayer * OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
9ecea05b89aca9e8411ae5bb1ea7f185e06615a3Danny Mayer * PERFORMANCE OF THIS SOFTWARE.
9ecea05b89aca9e8411ae5bb1ea7f185e06615a3Danny Mayer/* RFC 5155 */
9ecea05b89aca9e8411ae5bb1ea7f185e06615a3Danny Mayer#define RRTYPE_NSEC3_ATTRIBUTES DNS_RDATATYPEATTR_DNSSEC
f42c0dcca86f2009c089e27ba513cb6fc9ee88baEvan Hunt unsigned int flags;
c3c8823fed039b3a2b8e5ca8bc2f3301d1dd840eMark Andrews unsigned char hashalg;
f42c0dcca86f2009c089e27ba513cb6fc9ee88baEvan Hunt RETERR(isc_lex_getmastertoken(lexer, &token, isc_tokentype_string,
c3c8823fed039b3a2b8e5ca8bc2f3301d1dd840eMark Andrews RETTOK(dns_hashalg_fromtext(&hashalg, &token.value.as_textregion));
31707708c585c53b61ca1edb2e224e6bb1b985a5Evan Hunt /* Flags. */
31707708c585c53b61ca1edb2e224e6bb1b985a5Evan Hunt RETERR(isc_lex_getmastertoken(lexer, &token, isc_tokentype_number,
31707708c585c53b61ca1edb2e224e6bb1b985a5Evan Hunt /* Iterations. */
31707708c585c53b61ca1edb2e224e6bb1b985a5Evan Hunt RETERR(isc_lex_getmastertoken(lexer, &token, isc_tokentype_number,
31707708c585c53b61ca1edb2e224e6bb1b985a5Evan Hunt RETERR(uint16_tobuffer(token.value.as_ulong, target));
9ecea05b89aca9e8411ae5bb1ea7f185e06615a3Danny Mayer RETERR(isc_lex_getmastertoken(lexer, &token, isc_tokentype_string,
9ecea05b89aca9e8411ae5bb1ea7f185e06615a3Danny Mayer RETERR(uint8_tobuffer(strlen(DNS_AS_STR(token)) / 2, target));
9ecea05b89aca9e8411ae5bb1ea7f185e06615a3Danny Mayer RETERR(isc_hex_decodestring(DNS_AS_STR(token), target));
9ecea05b89aca9e8411ae5bb1ea7f185e06615a3Danny Mayer * Next hash a single base32hex word.
9ecea05b89aca9e8411ae5bb1ea7f185e06615a3Danny Mayer RETERR(isc_lex_getmastertoken(lexer, &token, isc_tokentype_string,
9ecea05b89aca9e8411ae5bb1ea7f185e06615a3Danny Mayer RETTOK(isc_base32hex_decodestring(DNS_AS_STR(token), &b));
9ecea05b89aca9e8411ae5bb1ea7f185e06615a3Danny Mayer RETERR(uint8_tobuffer(isc_buffer_usedlength(&b), target));
9ecea05b89aca9e8411ae5bb1ea7f185e06615a3Danny Mayer RETERR(mem_tobuffer(target, &bm, isc_buffer_usedlength(&b)));
9ecea05b89aca9e8411ae5bb1ea7f185e06615a3Danny Mayer } while (1);
9ecea05b89aca9e8411ae5bb1ea7f185e06615a3Danny Mayer * Find if we have a type in this window.
2f1c460beaa1e372255e7a1b8aad8996f011816dMark Andrews RETERR(mem_tobuffer(target, &bm[window * 32], octet + 1));
2f1c460beaa1e372255e7a1b8aad8996f011816dMark Andrews unsigned int i, j, k;
2f1c460beaa1e372255e7a1b8aad8996f011816dMark Andrews unsigned char hash;
2f1c460beaa1e372255e7a1b8aad8996f011816dMark Andrews unsigned char flags;
for (j = 0; j < len; j++) {
if (dns_rdatatype_isknown(t)) {
return (ISC_R_SUCCESS);
static inline isc_result_t
unsigned int len;
return (DNS_R_EXTRADATA);
return (ISC_R_SUCCESS);
static inline isc_result_t
static inline isc_result_t
static inline isc_result_t
return (ISC_R_NOMEMORY);
goto cleanup;
goto cleanup;
return (ISC_R_SUCCESS);
return (ISC_R_NOMEMORY);
static inline isc_result_t
return (ISC_R_SUCCESS);
static inline isc_result_t
isc_region_t r;
static inline isc_boolean_t
return (ISC_TRUE);
static inline isc_boolean_t
return (ISC_TRUE);