diff options
Diffstat (limited to 'lib/dns/rdata/generic/keydata_65533.c')
| -rw-r--r-- | lib/dns/rdata/generic/keydata_65533.c | 30 | 
1 files changed, 24 insertions, 6 deletions
| diff --git a/lib/dns/rdata/generic/keydata_65533.c b/lib/dns/rdata/generic/keydata_65533.c index 317e1a87246a7..a2d83f456e493 100644 --- a/lib/dns/rdata/generic/keydata_65533.c +++ b/lib/dns/rdata/generic/keydata_65533.c @@ -1,5 +1,5 @@  /* - * Copyright (C) 2009, 2012  Internet Systems Consortium, Inc. ("ISC") + * Copyright (C) 2009, 2011, 2012  Internet Systems Consortium, Inc. ("ISC")   *   * Permission to use, copy, modify, and/or distribute this software for any   * purpose with or without fee is hereby granted, provided that the above @@ -89,6 +89,8 @@ totext_keydata(ARGS_TOTEXT) {  	unsigned int flags;  	unsigned char algorithm;  	unsigned long when; +	char algbuf[DNS_NAME_FORMATSIZE]; +	const char *keyinfo;  	REQUIRE(rdata->type == 65533);  	REQUIRE(rdata->length != 0); @@ -119,6 +121,13 @@ totext_keydata(ARGS_TOTEXT) {  	sprintf(buf, "%u", flags);  	RETERR(str_totext(buf, target));  	RETERR(str_totext(" ", target)); +	if ((flags & DNS_KEYFLAG_KSK) != 0) { +		if (flags & DNS_KEYFLAG_REVOKE) +			keyinfo = "revoked KSK"; +		else +			keyinfo = "KSK"; +	} else +		keyinfo = "ZSK";  	/* protocol */  	sprintf(buf, "%u", sr.base[0]); @@ -140,10 +149,13 @@ totext_keydata(ARGS_TOTEXT) {  	if ((tctx->flags & DNS_STYLEFLAG_MULTILINE) != 0)  		RETERR(str_totext(" (", target));  	RETERR(str_totext(tctx->linebreak, target)); -	RETERR(isc_base64_totext(&sr, tctx->width - 2, -				 tctx->linebreak, target)); +	if (tctx->width == 0)   /* No splitting */ +		RETERR(isc_base64_totext(&sr, 60, "", target)); +	else +		RETERR(isc_base64_totext(&sr, tctx->width - 2, +					 tctx->linebreak, target)); -	if ((tctx->flags & DNS_STYLEFLAG_COMMENT) != 0) +	if ((tctx->flags & DNS_STYLEFLAG_RRCOMMENT) != 0)  		RETERR(str_totext(tctx->linebreak, target));  	else if ((tctx->flags & DNS_STYLEFLAG_MULTILINE) != 0)  		RETERR(str_totext(" ", target)); @@ -151,10 +163,16 @@ totext_keydata(ARGS_TOTEXT) {  	if ((tctx->flags & DNS_STYLEFLAG_MULTILINE) != 0)  		RETERR(str_totext(")", target)); -	if ((tctx->flags & DNS_STYLEFLAG_COMMENT) != 0) { +	if ((tctx->flags & DNS_STYLEFLAG_RRCOMMENT) != 0) {  		isc_region_t tmpr; -		RETERR(str_totext(" ; key id = ", target)); +		RETERR(str_totext(" ; ", target)); +		RETERR(str_totext(keyinfo, target)); +		dns_secalg_format((dns_secalg_t) algorithm, algbuf, +				  sizeof(algbuf)); +		RETERR(str_totext("; alg = ", target)); +		RETERR(str_totext(algbuf, target)); +		RETERR(str_totext("; key id = ", target));  		dns_rdata_toregion(rdata, &tmpr);  		/* Skip over refresh, addhd, and removehd */  		isc_region_consume(&tmpr, 12); | 
