From e322186112c778fd945625fa320a2bfb1ed15e4e Mon Sep 17 00:00:00 2001 From: David Blacka Date: Wed, 21 Sep 2022 14:24:42 -0400 Subject: [PATCH] Port to DNSJava 3.5.1, Java 8, linter fixes (#13) * Initial port to dnsjava 3.5.1 * java.util.Date -> java.time.Instant * for (Iterator ..) to for ( Object : List ) * DSRecord. -> DNSSEC.Digest. * source to java 8 * formatting overhaul; copyright; author * add slf4j jars for dnsjava 3.5.1 * NSEC/NSEC3 ttls are now min(soa.min, soa.ttl) * Upgrade to commons-cli-1.5; some linter fixes * Add CDS support of jdnssec-dstool * linter suggestions * add a TODO list * Add a TODO list --- .gitattributes | 6 + .gitignore | 3 +- README.TODO.md | 15 + README.md | 11 +- VERSION | 2 +- build.gradle | 6 +- build.xml | 4 +- lib/commons-cli-1.2.jar | Bin 41123 -> 0 bytes lib/commons-cli-1.5.0.jar | Bin 0 -> 58284 bytes lib/dnsjava-2.1.9-vrsn-1.jar | Bin 314320 -> 0 bytes lib/dnsjava-3.5.1.jar | Bin 0 -> 532006 bytes lib/slf4j-api-1.7.36.jar | Bin 0 -> 41125 bytes lib/slf4j-simple-1.7.36.jar | Bin 0 -> 15333 bytes licenses/slf4j-LICENSE.txt | 21 + .../com/verisignlabs/dnssec/cl/CLBase.java | 235 +++-- .../com/verisignlabs/dnssec/cl/DSTool.java | 111 +-- .../com/verisignlabs/dnssec/cl/KeyGen.java | 195 ++-- .../verisignlabs/dnssec/cl/KeyInfoTool.java | 77 +- .../verisignlabs/dnssec/cl/SignKeyset.java | 268 +++--- .../com/verisignlabs/dnssec/cl/SignRRset.java | 247 ++--- .../com/verisignlabs/dnssec/cl/SignZone.java | 626 +++++------- .../verisignlabs/dnssec/cl/VerifyZone.java | 114 +-- .../verisignlabs/dnssec/cl/ZoneFormat.java | 159 ++-- .../dnssec/security/BINDKeyUtils.java | 264 +++--- .../dnssec/security/ByteArrayComparator.java | 33 +- .../dnssec/security/DnsKeyAlgorithm.java | 412 ++++---- .../dnssec/security/DnsKeyConverter.java | 430 ++++----- .../dnssec/security/DnsKeyPair.java | 202 ++-- .../dnssec/security/DnsSecVerifier.java | 225 ++--- .../dnssec/security/JCEDnsSecSigner.java | 440 ++++----- .../dnssec/security/ProtoNSEC3.java | 183 ++-- .../dnssec/security/RecordComparator.java | 88 +- .../dnssec/security/SignUtils.java | 892 +++++++++--------- .../verisignlabs/dnssec/security/TypeMap.java | 110 +-- .../dnssec/security/ZoneUtils.java | 120 +-- .../dnssec/security/ZoneVerifier.java | 460 ++++----- 36 files changed, 2627 insertions(+), 3332 deletions(-) create mode 100644 .gitattributes create mode 100644 README.TODO.md delete mode 100644 lib/commons-cli-1.2.jar create mode 100644 lib/commons-cli-1.5.0.jar delete mode 100644 lib/dnsjava-2.1.9-vrsn-1.jar create mode 100644 lib/dnsjava-3.5.1.jar create mode 100644 lib/slf4j-api-1.7.36.jar create mode 100644 lib/slf4j-simple-1.7.36.jar create mode 100644 licenses/slf4j-LICENSE.txt diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..00a51af --- /dev/null +++ b/.gitattributes @@ -0,0 +1,6 @@ +# +# https://help.github.com/articles/dealing-with-line-endings/ +# +# These are explicitly windows files and should use crlf +*.bat text eol=crlf + diff --git a/.gitignore b/.gitignore index 74a743a..463da61 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,5 @@ build +bin/main .classpath .project .gradle @@ -6,4 +7,4 @@ jdnssec-tools*.tar.gz docs test-zones settings.json -.settings \ No newline at end of file +.settings diff --git a/README.TODO.md b/README.TODO.md new file mode 100644 index 0000000..e78ec7c --- /dev/null +++ b/README.TODO.md @@ -0,0 +1,15 @@ +# jdnssec-tools TODO List + +This bit of code has been around since approximately 2005, and has been in "minimal maintenance" mode for much of that time. But that doesn't mean there aren't features that we *want* to do, if we could arrange time and attention. Here is a partial list: + +* More feature parity with the current BIND 9 tools + * Support the "v1.3" private key format. This basically means supporting the timing parameters that BiND 9 added. + * Have `jdnssec-signzone` support incremental signing, including key rollovers +* Rewrite `jdnssec-signzone` to use a "TreeMap" and arrange the data into a map of RRsets, rather than a sorted list of Record objects. This wouldn't be more efficient, but might be easier to understand. +* Allow `jdnssec-signzone` to scale by either: + * Allowing for pre-sorted zone data, and/or + * allowing for an external sort once the data is shown to be larger than X, and/or + * allowing for a memory-constrained internal sort that uses disk, and/or, + * figuring out how to let the JVM use *a lot* of memory. +* Add support for algorithm 16, perhaps refactor algorithm 15 support using bouncycastle. + * Note that our current dnsjava version, 3.5.1 has some support, although it isn't clear if it has sign/verify support. diff --git a/README.md b/README.md index 7b812a4..d4ceb96 100644 --- a/README.md +++ b/README.md @@ -1,12 +1,12 @@ # jdnssec-tools -* https://github.com/dblacka/jdnssec-tools/wiki +* Author: David Blacka (davidb@verisign.com) This is a collection of DNSSEC tools written in Java. They are intended to be an addition or replacement for the DNSSEC tools that are part of BIND 9. -These tools depend upon DNSjava (https://github.com/dnsjava/dnsjava), the Jakarta Commons CLI and Logging libraries (https://commons.apache.org/proper/commons-cli), and Sun's Java Cryptography extensions. A copy of each of these libraries is included in the distribution. Currently, these tools use a custom version of the DNSjava library with minor modifications, which is provided. +These tools depend upon DNSjava (), the Jakarta Commons CLI and Logging libraries (), slf4j (), and Sun's Java Cryptography extensions. A copy of each of these libraries is included in the distribution. See the "licenses" directory for the licensing information of this package and the other packages that are distributed with it. @@ -21,7 +21,6 @@ Getting started: cd java-dnssec-tools-x.x.x ./bin/jdnssec-signzone -h - Building from source: 1. Unpack the source distribution, preferably into the same directory that the binary distribution was unpacked. @@ -29,7 +28,7 @@ Building from source: tar zxvf java-dnssec-tools-x.x.x-src.tar.gz 2. Edit the build.properties file to suit your environment. -3. Run Ant (see http://ant.apache.org for information about the Ant build tool). +3. Run Ant (see for information about the Ant build tool). ant @@ -42,9 +41,7 @@ Building from source: The resulting jar file gets generated in build/libs. -The source for this project is available in git on github: https://github.com/dblacka/jdnssec-tools - -Source for the modified DNSjava library can be found on github as well: https://github.com/dblacka/jdnssec-dnsjava +The source for this project is available in git on github: --- diff --git a/VERSION b/VERSION index 3e88108..a12c194 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -version=0.16.1 +version=0.17 diff --git a/build.gradle b/build.gradle index 34de45e..6c2351c 100644 --- a/build.gradle +++ b/build.gradle @@ -10,15 +10,15 @@ apply plugin: 'idea' jar { baseName = 'jdnssec-tools' - version = '0.16' + version = '0.17' } repositories { mavenCentral() } -sourceCompatibility = 1.7 -targetCompatibility = 1.7 +sourceCompatibility = 1.8 +targetCompatibility = 1.8 dependencies { compile fileTree(dir: 'lib', include: '*.jar') diff --git a/build.xml b/build.xml index 3e38ac9..7e30180 100644 --- a/build.xml +++ b/build.xml @@ -47,8 +47,8 @@ deprecation="true" includeantruntime="false" includes="com/verisignlabs/dnssec/" - source="1.7" - target="1.7" /> + source="8" + target="8" /> diff --git a/lib/commons-cli-1.2.jar b/lib/commons-cli-1.2.jar deleted file mode 100644 index ce4b9fffe40c41669797cd806ac989471b2acd84..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 41123 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%0D2u^7bcx|ezvBT@`6 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 CNzF?D diff --git a/lib/commons-cli-1.5.0.jar b/lib/commons-cli-1.5.0.jar new file mode 100644 index 0000000000000000000000000000000000000000..e03645653bcd81b7ecdf1c98bf62d304e134fabe GIT binary patch literal 58284 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�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

IlhN!x8Eot%*2_-5m_4>Yk&3FE zta(F?QpCM1+wLk`-sH0O8i7?pE7eE}T#Eoh2u}z~-RWwh&NN??OLy1zw`6<$`h%D^ zLWp9BLT)o%Bf&Z;+67IFS_VU-v$~1(58XHW>Q8k$?P|8By^T{nae`FKJ7Y4?iNoRP zl?=ec20;E!9spsKX`Qb^sH4cwplDRgyx3*?lxR|KuL-g55bj@+#YBxkeXPlmbe`Rs zSM1!zx7jtN%O2{ODkw8>ibfX1fQhPU;$o&$HE+qyjhxYnsPEKfG{4uRA~ZM#a8Xv9 zf+h-24H`ozXK;!2!De?ciMN6B3ye&1fST1AwE>=}#x5?i9jhm3Vdf2FwkIpeZL=w& zcBihln}#v~+k<+=%^HmsF{^JbAYR?-n^a$rElYr77UlqNpm6R3>{n=TcFRTbi066L z%B9CIo6<=-yOKK52n54ao!+TgQirZ`$VVzvFqmNwdl^P>-&$*byb^7`Mw2}z zn;PZG`1ti5_*yt(Du+bS=->$PVu4xdyD8q($U9f%S-|dXtP0Umsn>{MjKXKTz>8F?#zAoz{w zn>Sh3=2&SsviKZ2{s0^Fy0E*%hS|f8?oCZ~XMuLTuo=^Ay>qd%FGrv_$*=n&i>+cA zrGWeudozgk+6-57S*K2-s`%=qCNrBMPJEb-I06`8L=Yw5^1tWDm9j?j?AJ;dlz=KZH^m07&gL|a zH6s%`eR%`><8yd*!>r=xZoDAGZ-KDcoLgL02sEx&J3=H$Ze=yRL#D?z??m^$Wayb%k*kzE4LxA8`QhG#2Ed+8|e=zN2BNTWM^$6QFm-+nslhp zFR{GJs&;B&L2fOJ>pN!i+B>%LUPRT67k=TFDzN1!7;5ORBKtAOz#_(kkprwp_)HD8 zG%6$0+2+g1ifj)pv~zmG4^=X#S|{avr!4dJzM{KZ_)%AUb1;D$ z9YTrQIDtuiR3g-Sen`#e1TonhI^Z|X-wgdfUC8l!1``pLiti-22qlaa%_H>y90c`= zF}X!FlD*Wyr@QJugTm4p2UG?V?~XudXO*%|x1?IsNpY_2=jw{?PI{;ck%t*9;|KD@ zO5>8LAj*VPo&A@N;X%l8ZL=7v6Wmp^AUi^Hp( zSp}vCn7B{YQ&rl|DI{>NG6FUT-2rz+vycTDN+Om3E3yFSa!t$TqNBhC9Z^dz!yZK} zq_oEcql{m_kA{VO7XgH-)M#)JJMsAJMFEywT-!>}LY8@LJ&bC$Y#I_$iB}uO;tFhn znb{c_M=fM+ZJCAq6#ZcXE`%;|(e}MSlg2cv(;pekI@0kP^XZKX`4<@~9$H5A%%WuW zSsjE=bf>n{g=_JJ;APb)8J6qo^8>i)1=4d?R&6%2Z{-%~BE$B^0Cuu%5(%eowd%)0tIcPR?K9F z_)^JQLPXp85(#(41#LX>3~w?i1xrqrn7paCRJdrJ;qu#pmY6KxZS!k+ut>d1NZr0?7_30SIwS;5jV)lmlviDZtWe(u2ZKW&|=yKEMQBDx6UemIZZ1Rrk&n($Y z@=-orPeX+|IRquyu~QTp*|fB=_n-?I9CDp7v^3UmcXNBwqS$pl@@|x}1M!0l1tr6L zR+-D*upl?R2~rlyX1ye*fl$@295mOsw{>waQLq8jdIs|{+n{iR(S3#;Awb~0DK07W zBJ$anZxf+77SX{~C>Jid+TYxx+97}I`*J@1I-;Z$>x z$1lek`C4?7tByL;fe5M%^2-?7Q`;Jx{xdLdBlRk2YlZG6sRW-X9d0I$t6rR`!zpvy z(qUbz-lj`s*#v~~mNi5hQ@2t}S}y(h&!e+8RRhCfwmC09?W-KYLNtyL(>(|x_j;mB z)UzZ45GII4EvgY7>7K%%~Q7D&d+Wf{D&H^Zw@;L_TX8b}1 zU!54{2)k3TQz=%-bu0`C-9qZsm9-q54CDzIOK(y(N7Cx*?>ss+Sc*Ol%Jkpc>Po)P5`4$Yy|fp-{5Y>9~fV?vN_oa)tOMYUbi$ zwP-WBTV=bLVm47?1?jc^h@_JVGG0GOiA(T@ft4*$bIL%_?NEs1d35XnF zXFwcjc|!Ys7NA?OHucA_K+X8owQ51Ltz`=oWfn;9P_Y3I6velNWk zj&;L09Dirn1x-6aMHwT#;0~NO)#QZ;^cMeUsMIJNh*u0@Ak{K-@FX*P8UQxnUrtAQ ziclpNF{#iY!#U}1wEs;EWZ35Zt0AZ2uLw^=t#wlY^m^!csThH9mh=4;)?Qyzs=sV% z^tnA-&hg&-#yf23aFlr;Ez5J2gaI?F8@Hzy8v8!n#&o(P`c>b22mkNseZWT5<0~kZ zHI!Isg}DHKlUEyCBYaV6F09QgrOe`3Y10j+%(C5QW`j~UY-qABJ4gB2iu`H2>#$^W zd82D4(S={+jXk)0IouY2^4{glvQsO4w`zHYjs?}P<6f2D=A`A9X1VgI?{9dAGsd>P zQlp#tM~)$iM?%AL>5z1xKTrOe&FDK3)(LhpWMahLrPYl4*|p^L*hT}6CI-`I8Y@mq z$;Fd+mYJo_o_av*cAU7pvU(6s_iVUT)8@ z&>{R8q7(9&38cUzxdVQhztc2i>H#JdawLa@Fwz%aE4yp;}blsGv8ManfJ@1rcZe^J{+g@ukqN8J$=M_kOY)yL{6`lFaamB`_ zWuY_!;H9t!z3c}Pmx1mjG{iGrCv1M2!|+yFcB)P#JosZ6?J|gS9?q#|QYt6B-E


x~c>s`3bXiU_PNzwWMBdmTeVK+yh0|U4hoe*Ji~jYg zjKu3pdf1ZsbG060>di``2R+5RmqqGsGej#?h6$f~`-=nPd~j{k(wGM4LX;{SeQG|B zv2V#Gf7yc1(K|cSLo{&a*a=}o7LM88EhrulDqg7!qlklm9X`|B>aeK znrX+p-Z5nVNr%_-9M)B{Z}9Qk{7(2{ASRT=Zb$M1yrCxsGm5|0=OeNDi@75($7vy> zP@;RMySq>O<=bmydk1*yai3rHN4ILwOIG;Kvn9~qT)E-(a;WRrlCFxQecrpd=TX3y z2;I9G*whyj^=A;~aZNe0uMy0bu5OHPsrIek8x5bz^KQ-=A&xTqeyaz{=NWZjhCHS4 zrFyZ49$>NJCGD;2u0p^3_glf3@^xA4Tl<*$@Pb5t1ymGb`3Qw7shCO>vuSB4+`>7A zY|XBbOXnMl!(lAc`2|5GeKxG-*5UN@R;(dv8f38@^;oM_d4;- zB3rcM$giCvtTxMxq*;*lUBK z#c;| zE$)uh-8^`yV- z&MTf6OLyjxR@b7M2gUkR7g3U0#`gzM|FT}F*DDEOTbysDgIE_#6b@An-_gokH)*u zESk@QVa1Ja`^YX+Ll$l{f{tm`u@R|BnV6dyh(~cKxAWI%G=!DSPjs#5(=Ic+Aq;Us znl4Y_SpAtto;y&%mL6RS0G4-0TRavXI)jCS6(0!rHG5Z0L{W>gv@PT+x{N+gsrmD9Ca3?0#mv zM9F{_(GJtZoChV&&TVao~?jEGD+v zy9fJeH0`^x3ZUX)2I(}1g-IE)bsRN#XbpB989ql!&U455MG#I4XhmXCWYbiQYZA}( za<)B#Cdl@(W%5uG`Eu+Vn9pOt&{afa&vogf`?pR%{_KKb9CX<>3f=szb$#l_xxL`o zMpOX%Le?4G+F;-F;xR`E_^Z1rxg-5~X3F9*=~WXfJHgB}nRLiiz(%4y2?7ea*}6(| z)%U+@+Ez7YF?n7R19Q11501}OwC%EP)->F4)cOT9Y;#`_a=YU=v{CVYG4>A5okelB zZ<3CkbZpypI<{@wcG9tJ+qU_OZQHi_dS>pe_p0vPsaJLWf%C1iPwln#XRqb+Iz1cL z8#?D?CtG&ZsWqkMCdC<-t?eT~rbft3wrC!@;u6U%`mZH5mXq}Mg%s3zLiUgo)Id); zhnTjg&JjI4ez}K^T?}C_6e9ZsD>e>6$0V3{z{f3-HH4SsJ$}hsXIYS{>g}5z;*(VN zONdw8Z*4f*+RWw7WPb!u6^PeQ(j198WBWc{_?SGRe#{r+s>@t4LTVAYO09+9+^Kc5 z{8T>gM!OC{C#t-4kIF{L0120QYef?Zqr}%nB z5uIpYR6l3FAw!=FXZKi=H?QY(cU^(%51X!B({v;g;?8Ccb&)(I+xDU&@jhC_U&B7h z($iYwej=3!Ncu~Fah%*3l3zkn>bXhAkrs`-Ua>`wOq*AL0B)E*rcr~|8_+YvE`7M z)R}BU@jP1fT?pWH>%L&;WiJ+Fi&#TlrIW@FM2T%N_Uw(nU;N2wxyo)HvbPWOJhe=< zcR=HO<_)qOE328U2kMTa*JJMcL99<7_CFB zd6D8K_jR?Q)aHofIhjwGaW$THHMeB;5&c~#uR$)#K50kCijPLGQnd;)FsW~8eEe<_ zH*kNWI!7MF^>BF>5hDEfn!@Zg?&648{}k}~S2Xg^-+lD_G_Lwx)=x+*U=&P&D5iUd z2u2WvLZF3c!NF+5MXW-3v#5S#BN|mqQgdRJwz;rf;6m6~jDtIt8w8A_bx7RBNm>r2 zO1{1V#|&9l$JONvPm5a5v|Y+@jP2b{{P({%A1_hE*c>JFdP!4AYL#0$M;E#QaRrTf>PK;?Zd z>fA`u{_3`y^?a8e7Fu=h_WY1QtK2tKYF~ZK8j{6rP*~{>$ABZx8gts`#Tfh>-44haqkb!nV}8YhP%4FaoIx!zODMH| zwMStj$ zao$l9M<$Oz_PlwsB#-ouZ*VHV-b%s$)a?A{2lHE*cM*}n0v9HJzHugI_(DB zk02f%mFSe!P^m9PBG4Zw#jO=ooMMc9nD9~<3r*O9RzjCdTvXK6qT@IEP;QW4_Gxq} zUjk*qlw9_a=$2gfQFcvk``33>t>>F@*oEqv?aKybyKwCDwLcTkdv&f&xa$dwu5lsW z!K8N>u=Lr{2>RD!ARQn}Gtmuc3?omnVKL5_3wGC|L=Q7nG0=%c*5l~0sqQNnq2@5w z{GlJgVML}&&kph$+aqC$l<-|SGcO*{w&^{@d+j;&rrsTKA`#Qew}ip?67=JR--Ggw zGK_4}#5F?3PsHcQd@338Oa$P|rx+z#L}8BUv9H=*Qd`ddoj}C3fT(Pu-MCP%>QA~< zHD&IGVa<_@fbnW&X0{XSYS6E!ZW?b8Lv+reDs&y;D;_j8h{buRjq!5cKCi|plFROh zs>EQf7M^8G!n(q+bCxevD_lPv#3_tCP45RO#Ey)XS-fyryeN%lvi(E;p>4H!h?h1^ z_`6-wstzPI?pEqNBEO&VyWK>slD&-F1vzt2QPA1qgP|Ic<{N`hEVQ(I7lOtm=@V!v zyv5&g=~88zaH+!KB+qgwT;)mSDT%owSuqTUtvx;SOV&avx+gM;QRd5DUlv=YWx#Ax zPR@%UG*D#IM>xxF#M{`m#SJBHLTBhvCP~3-abbE~>ebrvvO#SbW}fF)<(VYFJ*e_( zH2fXJt@z)Q*O-uyYs4wLB%Ljlw?j(f*_mY)oQh7}8^`U4i5=@ktkRPGmjvRB_z_7+ zBNux59>c+owB5!eyj1Nd(uy~zpsrONbqD7K8QXKI%*Q)d5A#BWblwbSWX~m~=J`eF znS5!ra@Y!D1FO(R7MFrQWpt%#SnbR}j**{V=w>|X2m;82u;3 zW3X4Pbe{Oz)2RkLD-4dqh3x{BKdw>zOBh>?eJnnL{*qL!amN^{q05=0!Mp#J+B7rg zJFp(OEuE@q;gvRf&ux_1H`ed~!8wFKp{iSk+#TWs`z9f;JCM~{&#voc;89z(5~9hY zFzxKGG)DA#**)B3an;Y|?{JaxykG3tI6f%9jW3yWCb{vpyL>I@E_`pmaYjJ%Retj$ zR+S`s;R+aYoZA$f~6LaH=Jp zN}Cz;u-*02Bi`Pr-&2kL!sg(#lP`6~KIVW#+w#$2`H||GunYfOxC1mg#^ISG%~O`< z9keTlw?0+hLKDLaNi`6Kp@5-V3d=9)3~J-LTHW)Y9}*+geTPKWSgwl7 zY5N9O>du20&71#3JE`WhA#{%O@wehq!MffLEbjscM0~Kl@gcaC%Xa8;Fu(WFu-oiv zc&O{u?clTO1YBH;rxN0s?%S&M1H8F)RLykb(5r~IL)cr@_o7ayhZg!n>-lt^-^S?% zSVw2DEtoU)ennodd2xj&91>6bOY+#*7Q`v z(sod}x*t5JaxK<>n3;BD4J!SBAua^)eeT5)5-tR@eY2=qw;ZrwVnL_*~>A>crY`b>t9S^63CJyC%zWt_I^L97clwgLCtu z2V_-QUdpTIu+6CX6C_fN2%ET6Et|UteE;)T7ggMpw)3wOF&WDOC2&4fV_d}tc>U0m zFu!&SHrzh4+D(s)6ffuk8HmN;U}&*Vh}#xUFPvxz`dS<{`A!&r2QX^9L_5hHJa$_t zB?Rb49RV9D0mG+%4pbhn-zg3Q&YuV0H@gJ^VfO>hFu|9p@h^3Y^ItfvXVqVyayn() zy+@djiNCLa53L4>B1VPfhNPwQZ7Lk-es~dF4u>aRyP#p}Qe4C`mODZy+?aPZ$L6#& z;(gNN%4|65}0#f1r zpU4G@|CU@(wzHGAvo#ZOH!}JEQ2fDhymBA{h#@=vzd#jG1_x!M!Swf0*A2`+%jnR5 zLoUPEPP2~CYQO__8i?v|Azllkm?47o!nGzZC%bMM@o(^J?SSZJs|Z59p>$EfP@qDW zMZOJ<_g8!2Kfb#i-eud)cH6S@O}+ghL<3#5?`5hBnI~T&wo;9YxPw7Nqc} zqU@1BW3Q3T$U((y`K|Ly}aKyhOjFKyzrU%<+H3D=S?$Ab( z-Ldg3ar)<_2bbW@fRk4K;!%reU1rfKyi1fdHpC-6t5vWHxOVa+1F+N0Zhrpl3s(_Z`^Ln)~K&xu>u30Yg1*gBI){e!$5?Tk#Eoa`L`*UgET3Cn*o7qNTGxQjof z!{4Pzknud2E+!HW0EcL>BOh9wcb006_|Ay*{)_zup{Clmlp z_>iw0T3oLhZPuQF$=?vN#pZQzAa)Bjaw-&nmEXGTRbAy;oI$^$Z4I?GMPIM~<&p%H z|MTe!$hxagw>Vi9O>RWpbSEFZJxZJ%|Dr?TVN8LFeVJadN}5fVq=~AEi8l&h+dIRT zF!-@#0}@1CAw;SX!YdP$r(?fzZvxlAg1DT9D z7#LW*jz*=3NKr%t%N&~pt%#*STm=OMRYU*`#eRrZ_43blx&)Jj;ycvN;kMgN`$^VE z?$h(y&$Sm$A7=p*BtjRKHy89SI>nlyGuB>^L379on;m0e&EH-&+o7!?knM=^5Bck z*S0bUh6~h%!ebmLP}8`$%Ky&DW~B5*MT{ppBvHxEG9o3GIS$yOQbdchDut&wwFD8n zT2-Dcf-;Ec%NAO3*lt?F4OJx_Vpx{xVUJVdId0%AgrOQxl~|RTItQjcD=na*O zmjL;I{uT`o!_z7|;DL%5Hi8okrCgz#trz!H6p#$ig7)`NEOfh2r(vavAiGRTN5bt3 z1~KuN+?cnW+_nr}x9;Q(D=u58lOA!bLc~aQ(_-H?fCkl)aoaW8x1T(8j6Q6T6yv2s zreHIyAFc{hNn)5Z)%Zh|8KBHjU=$rx^oNqBy=uvUk&Z9~9{8L^&L0VGi-N(|-pE63 zQM$un1A14{e~3EDeIP1Wn>)!M-OaDl$CqN;a&10VFa#Aw#AbU`azd^+@o^H4Ynz&O zcf*n+WzZurX38Buer(seXkE#3pR%(yJ=Qz8+giw2AxcJG6&9eB4)52s9?~?OG$eZK+~WWy;cd zJTvv0^Qy|0*fovS${hgbq}c6RBM3eLIm`O&BhjQ7v1ra_#RC5jjB z)z?d=Zd8Be8u4hy_NNjFEx?7QG?N^P)OgAc8t18@-JLe(ZaMwOf5XUTH;L1zxrV5F zruJPXq9ntrUah>vE^-Q00 zN?zp(siK?Nw`LPvj{IY=_n}O843-I`Q47)Tqa>S3Sw<7N;Kyi~*>W^*Fch5HB_Znx z;14L_*sWwerhvso5Jk3qZFbL<_>8p7h6vn?=Vor=*Y3+-Z&$f5w z?sU9kL&UM>ToE}>Kqq^jni%0=2DuZ3>iZi zVmhWT7@&QFQdvILN91l7taI6#tTYV7V~e1mwIG6LaH+cJ4C2&|!mATQa*y@}JkS%B z*(w=e6Su6Y;ovJrkVhChOchk-a} zZoCyw#pKA*6K}(d$l}>cB$?e`#Z4bB3gbP|hvAiQ{nMUf&mg2kZhO92g{?fXL1)DB zC`&lrSi>?~Ui1suYyY}0`auiYGS#l|+IU(PMl7$^hkU4r8sd)^h zlOwC)bUKT!4NJU_BN+Bo({EO_K~hK~2nJpu%hCIm#g;7;Cnd+|vzE1b<$Ap+m25-^s z0eb!sJ$u-3szHYe>z1}>scByKPZEA znzD76dae3b6;+DY_b-=cAgEjHPgP1a(6x;*fZaeP%J%xND+>~-U)XB=v)SPJ)xOC z>H}wZRaIO~F#h68`R9R24;aDdcMb*$U@&UsjD_EZC=WLvx(Bd|L5%QbhD^Dg%noR% z9M~tfKUi6jTr`K&cRYNM(<8}kKn^t}?(Z%+bRjPo`&c{^EL{#Le4jaye1`RK!3{Sv zARJ2hLf&0I>a@Tpl7V?3B{2{w4%2ETA)5eGjG-2{w=#@PI zp5f=;pI0h{+WdWYc$dlt23>u05TD&u!@sPVk2=)+zky^=c9KE6a}v~)Tz?gdVMtmb z4v;Pu#Cx(RBtEJ8OSL!nH%3$ah1C|Aq6-{D;|(_*x5-bbZbP$a%ZYIyZeh4xFPA`h zNpK{8!9V;4Z2AR##5(%nzaZFuF|6e7y(87|&pfHMeN!P*WuPrMkS&E$zH}f%lsyPTf z8V67bT$Z5lQ_0KB9<@Otm_&EP*@CWWcSnG`$j7i4wI#A_NNfeaotlE$orG6nc5gu4 zvZ{+T9x1MT(qv(t4kye+0nv9=3jl<4JH~e8le-te?n`hY-N7o}JP_DmO$Vj_=#AXH z6Kd2$`jt)@tA37%TeHOs9D~QO$Mlg=?9^$nb>Hh*aOTtwyh(kzOY6I+&|xZ@BnsFC zHP%95Zu-dS|75&HJ^#W>hjp!VCN-HZ@Z8B(}(oeq6LvKWHOJ)U(#Hagu z^Y;)gl{iJ!YR-n*Js)VC;fUo3GXAKl%$UJ@^#FB32znqN^7Czq7+(*gfDgcKiv4w? z;H_k`4o1W~s$CkO_J$s@ROm|=oBDjztDTRfRvK1l{!1}g;rje%>0&5;Z+LC&7Xoax zHxUJlorF9af(Cf$Q9}l;37L6_W@rS^>i%c) z8DbEJQBFDU((gY6TGG)@8vDOUckq9_{{Q`g9QA)E(3Fkr|CdG+GB>cbHL?CD)&5J5 zL@VjYp{QZ_PG6=YqyVF#IQwf>meqB(*@#5bBw&1McIG+2q3d#XX0;ImqO#LT-_<^W z9Rbnd`ty+`-T4xJLO*}Jw*KWi^)NRQw6KyTzI=3@c;r4z-`x1UWA@?D9pw|639io? zK%(SuWXdi%eU2=3R+CrY!eGGE+zdy8w4bFf@u{CO$G6TQXzfZP^40KJwdbgH_smz- zwDku*FObft`0_L_I(X}O@Ryx{bf7ok%IP=6Kfb7FS0|c-U%8;_X=%Zzpe(h$RG`PiDR8*c+(`7F31cR@A7sqEn#pIcQ^vh~aWvmY{T=8}p*LZAt8F?nHu? zK*_G%zE-#7UHlfJwa*=68?*w*Z2UJg>u z2dL3@9^1{6oyoR8B6n=k{Xk!UJ#M)+XjBp-%`wM zHS$sTVrEz^{P|qLTq$UmLQ7BtLcG!pUu_x_{NfiyCos)m9<2Ee4e}R=;i~yvU{0>+ zBX~M8qlsA*<1|K$%}E)bcH_tMHJC9tbcIop4Fc$lQYj%kJwtCn4GSD0mV%fIP7wFM zz)0qZLGOSG`Q+#PYaR4aJn3gE<3oj%UCk|{uZ`Ytd&sj(%YtEo$bSB_WrY< zh1KSN5flIS^+@~wYdtDC8#w>38#l@7Q0m%C{~Q8_Tm3eTzd?wGu;Ic6;!Nh^RfNN! z4IFTYaF7}1nFj8CQX!a3%)(_E$~HO&Jx%Hd>k(2q@t*y6Fo%xID6>~XD%rl>yp}-$ARZzrnLZodc*KWyHIcQc z=qsIZF|crS;nL#%LNXNuW1ncTVWp}Fr@kWHsyE29QR3b7`YcdID5!SwrR0**iels# z@#BcGuZ2Cse`}OS6Gla2`UaovM{C6lH$Xzy=A*n~X;+oQwTISCgs}!hv+QyPorl!c zy_a%oPR+z|3>Ruwd}J8kg-A{F{}3#csCkuqK4ETV6FXo)gE_80=_evtm&1GnAmvg@ z2op>sG!a{Z@{qfp;(B_J!H*zeMUX`7p{21H>Jenm2l>p&r+rgU$#UE@uZ$Vu9b2gr z>?!P<#**ddYx%@ubu(9($0l(=|7%Vcpo5eScYu2hpv`fK&a`NCgo^})|A`Qnn4Jh_ z!lAu`!x7SY`y3|=7E4ZnuA;Bt;($L2_k0r)@Dt;ZMwT-vtLDwi%+cIJx`MnoqDwL= z4>2N5+2fFOw;us5d9P;W#jEc5lV`<|AhUI$3CLeqD!<={8<(dhp-L)U81U3G&pi7~ zMy^ywKGG_W&lAe3hq1En0$)e zWQ>lSBqLpHO)}|``9P0`&t@!;APtc#K=KtW$SweB9Fg3J^NYl5Mhe|to~z0iDNuPc zSOz`?Q~dIm7hb93EHPvfq+9_dSx3ZS^GRpw9tS=u70+w8ZY-r*oG%ESSP;Pe7lw-o z++9w9MaAHOzN%*SuZKFMOcIU>j9Op}U~4J-tLBAcx)on2sbWNCs$<8Y{73wQ|o8 zi{m(2C{jBIAFk)wzb?t- zC={)f{P5yDLEVpk1}BS!sm~O+`^yeyZo@*vNbvv%^-Qc?GaUJQm4d!{eVXcXi^5t= zJP%^bjW5zUa^gJY7{~VS1wgd499eE(h6A&0 z6XHR&U6uTqdWfFnC-e*gV2B6|ow`TVK#Hu23_≪$IFJDIC32SAd#DH)Hv!amJDR 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%0A);c+F+8(O%#lIVL7pmEHg#;e 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≻qlY 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[+KI33tW^bl^!5Z_IOsh!@3 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 ac*aO~Ev#T54zChl)#3X#iis+#(8-GV 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 2) mn = v[2]; + if (v.length > 2) + mn = v[2]; algs.addAlias(alias, mn, orig); } } - public static int parseInt(String s, int def) - { - try - { - int v = Integer.parseInt(s); - return v; - } - catch (NumberFormatException e) - { + public static int parseInt(String s, int def) { + try { + return Integer.parseInt(s); + } catch (NumberFormatException e) { return def; } } - public static long parseLong(String s, long def) - { - try - { - long v = Long.parseLong(s); - return v; - } - catch (NumberFormatException e) - { + public static long parseLong(String s, long def) { + try { + return Long.parseLong(s); + } catch (NumberFormatException e) { return def; } } @@ -264,66 +259,59 @@ public abstract class CLBase * Calculate a date/time from a command line time/offset duration string. * * @param start - * the start time to calculate offsets from. + * the start time to calculate offsets from. * @param duration - * the time/offset string to parse. + * the time/offset string to parse. * @return the calculated time. */ - public static Date convertDuration(Date start, String duration) throws ParseException - { - if (start == null) start = new Date(); - if (duration.startsWith("now")) - { - start = new Date(); - if (duration.indexOf("+") < 0) return start; + public static Instant convertDuration(Instant start, String duration) throws ParseException { + if (start == null) { + start = Instant.now(); + } + + if (duration.startsWith("now")) { + start = Instant.now(); + if (duration.indexOf("+") < 0) + return start; duration = duration.substring(3); } - if (duration.startsWith("+")) - { - long offset = (long) parseInt(duration.substring(1), 0) * 1000; - return new Date(start.getTime() + offset); + if (duration.startsWith("+")) { + long offset = parseLong(duration.substring(1), 0); + return start.plusSeconds(offset); } - if (duration.length() <= 10) - { - long epoch = parseLong(duration, 0) * 1000; - return new Date(epoch); + + // This is a heuristic to distinguish UNIX epoch times from the zone file + // format standard (which is length == 14) + if (duration.length() <= 10) { + long epoch = parseLong(duration, 0); + return Instant.ofEpochSecond(epoch); } SimpleDateFormat dateFormatter = new SimpleDateFormat("yyyyMMddHHmmss"); dateFormatter.setTimeZone(TimeZone.getTimeZone("GMT")); - try - { - return dateFormatter.parse(duration); - } - catch (java.text.ParseException e) - { + try { + Date parsedDate = dateFormatter.parse(duration); + return parsedDate.toInstant(); + } catch (java.text.ParseException e) { throw new ParseException(e.getMessage()); } } public abstract void execute() throws Exception; - public void run(CLIStateBase state, String[] args) - { - try - { + public void run(CLIStateBase state, String[] args) { + try { state.parseCommandLine(args); - } - catch (UnrecognizedOptionException e) - { + } catch (UnrecognizedOptionException e) { System.err.println("error: unknown option encountered: " + e.getMessage()); state.usage(); - } - catch (AlreadySelectedException e) - { + } catch (AlreadySelectedException e) { System.err.println("error: mutually exclusive options have " + "been selected:\n " + e.getMessage()); state.usage(); - } - catch (Exception e) - { + } catch (Exception e) { System.err.println("error: unknown command line parsing exception:"); e.printStackTrace(); state.usage(); @@ -331,12 +319,9 @@ public abstract class CLBase log = Logger.getLogger(this.getClass().toString()); - try - { + try { execute(); - } - catch (Exception e) - { + } catch (Exception e) { e.printStackTrace(); System.exit(1); } diff --git a/src/main/java/com/verisignlabs/dnssec/cl/DSTool.java b/src/main/java/com/verisignlabs/dnssec/cl/DSTool.java index 444af8e..3054555 100644 --- a/src/main/java/com/verisignlabs/dnssec/cl/DSTool.java +++ b/src/main/java/com/verisignlabs/dnssec/cl/DSTool.java @@ -1,4 +1,4 @@ -// Copyright (C) 2001-2003, 2011 VeriSign, Inc. +// Copyright (C) 2001-2003, 2011, 2022 VeriSign, Inc. // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public @@ -20,36 +20,45 @@ package com.verisignlabs.dnssec.cl; import java.io.FileWriter; import java.io.PrintWriter; -import org.apache.commons.cli.*; +import org.apache.commons.cli.CommandLine; +import org.apache.commons.cli.Option; +import org.apache.commons.cli.Options; +import org.xbill.DNS.CDSRecord; import org.xbill.DNS.DLVRecord; import org.xbill.DNS.DNSKEYRecord; +import org.xbill.DNS.DNSSEC; import org.xbill.DNS.DSRecord; import org.xbill.DNS.Record; -import com.verisignlabs.dnssec.security.*; +import com.verisignlabs.dnssec.security.BINDKeyUtils; +import com.verisignlabs.dnssec.security.DnsKeyPair; +import com.verisignlabs.dnssec.security.SignUtils; /** * This class forms the command line implementation of a DNSSEC DS/DLV generator * * @author David Blacka */ -public class DSTool extends CLBase -{ +public class DSTool extends CLBase { private CLIState state; + /** There are several records that are based on DS. */ + protected enum dsType { + DS, CDS, DLV; + } + /** * This is a small inner class used to hold all of the command line option * state. */ - protected static class CLIState extends CLIStateBase - { - public boolean createDLV = false; - public String outputfile = null; - public String keyname = null; - public int digest_id = DSRecord.SHA1_DIGEST_ID; - public CLIState() - { + protected static class CLIState extends CLIStateBase { + public dsType createType = dsType.DS; + public String outputfile = null; + public String keyname = null; + public int digestId = DNSSEC.Digest.SHA1; + + public CLIState() { super("jdnssec-dstool [..options..] keyfile"); } @@ -58,76 +67,72 @@ public class DSTool extends CLBase * * @return a set of command line options. */ - protected void setupOptions(Options opts) - { - OptionBuilder.withLongOpt("dlv"); - OptionBuilder.withDescription("Generate a DLV record instead."); - opts.addOption(OptionBuilder.create()); - - OptionBuilder.hasArg(); - OptionBuilder.withLongOpt("digest"); - OptionBuilder.withArgName("id"); - OptionBuilder.withDescription("The Digest ID to use (numerically): either 1 for SHA1 or 2 for SHA256"); - opts.addOption(OptionBuilder.create('d')); + @Override + protected void setupOptions(Options opts) { + opts.addOption(Option.builder("D").longOpt("dlv").desc("Generate a DLV record instead.").build()); + opts.addOption(Option.builder("C").longOpt("cds").desc("Generate a CDS record instead").build()); + opts.addOption(Option.builder("d").hasArg().argName("id").longOpt("digest").desc("The digest algorithm to use").build()); + opts.addOption(Option.builder("f").hasArg().argName("file").longOpt("output").desc("output to file").build()); } + @Override protected void processOptions(CommandLine cli) - throws org.apache.commons.cli.ParseException - { + throws org.apache.commons.cli.ParseException { outputfile = cli.getOptionValue('f'); - createDLV = cli.hasOption("dlv"); + if (cli.hasOption("dlv")) { + createType = dsType.DLV; + } else if (cli.hasOption("cds")) { + createType = dsType.CDS; + } String optstr = cli.getOptionValue('d'); - if (optstr != null) digest_id = parseInt(optstr, digest_id); + if (optstr != null) + digestId = DNSSEC.Digest.value(optstr); - String[] cl_args = cli.getArgs(); + String[] args = cli.getArgs(); - if (cl_args.length < 1) - { + if (args.length < 1) { System.err.println("error: missing key file "); usage(); } - keyname = cl_args[0]; + keyname = args[0]; } } - public void execute() throws Exception - { + public void execute() throws Exception { DnsKeyPair key = BINDKeyUtils.loadKey(state.keyname, null); DNSKEYRecord dnskey = key.getDNSKEYRecord(); - if ((dnskey.getFlags() & DNSKEYRecord.Flags.SEP_KEY) == 0) - { + if ((dnskey.getFlags() & DNSKEYRecord.Flags.SEP_KEY) == 0) { log.warning("DNSKEY is not an SEP-flagged key."); } - DSRecord ds = SignUtils.calculateDSRecord(dnskey, state.digest_id, dnskey.getTTL()); + DSRecord ds = SignUtils.calculateDSRecord(dnskey, state.digestId, dnskey.getTTL()); Record res = ds; - if (state.createDLV) - { + if (state.createType == dsType.DLV) { log.fine("creating DLV."); - DLVRecord dlv = new DLVRecord(ds.getName(), ds.getDClass(), ds.getTTL(), - ds.getFootprint(), ds.getAlgorithm(), - ds.getDigestID(), ds.getDigest()); + DLVRecord dlv = new DLVRecord(ds.getName(), ds.getDClass(), ds.getTTL(), ds.getFootprint(), ds.getAlgorithm(), + ds.getDigestID(), ds.getDigest()); res = dlv; + } else if (state.createType == dsType.CDS) { + log.fine("creating CDS."); + CDSRecord cds = new CDSRecord(ds.getName(), ds.getDClass(), ds.getTTL(), ds.getFootprint(), ds.getAlgorithm(), + ds.getDClass(), ds.getDigest()); + res = cds; } - - if (state.outputfile != null) - { - PrintWriter out = new PrintWriter(new FileWriter(state.outputfile)); - out.println(res); - out.close(); - } - else - { + + if (state.outputfile != null && !state.outputfile.equals("-")) { + try (PrintWriter out = new PrintWriter(new FileWriter(state.outputfile))) { + out.println(res); + } + } else { System.out.println(res); } } - public static void main(String[] args) - { + public static void main(String[] args) { DSTool tool = new DSTool(); tool.state = new CLIState(); diff --git a/src/main/java/com/verisignlabs/dnssec/cl/KeyGen.java b/src/main/java/com/verisignlabs/dnssec/cl/KeyGen.java index 25e6e0e..eed0dd4 100644 --- a/src/main/java/com/verisignlabs/dnssec/cl/KeyGen.java +++ b/src/main/java/com/verisignlabs/dnssec/cl/KeyGen.java @@ -1,4 +1,4 @@ -// Copyright (C) 2001-2003, 2011 VeriSign, Inc. +// Copyright (C) 2001-2003, 2011, 2022 VeriSign, Inc. // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public @@ -19,205 +19,178 @@ package com.verisignlabs.dnssec.cl; import java.io.File; -import org.apache.commons.cli.*; +import org.apache.commons.cli.CommandLine; +import org.apache.commons.cli.Option; +import org.apache.commons.cli.Options; import org.xbill.DNS.DClass; import org.xbill.DNS.DNSKEYRecord; import org.xbill.DNS.Name; -import com.verisignlabs.dnssec.security.*; +import com.verisignlabs.dnssec.security.BINDKeyUtils; +import com.verisignlabs.dnssec.security.DnsKeyAlgorithm; +import com.verisignlabs.dnssec.security.DnsKeyPair; +import com.verisignlabs.dnssec.security.JCEDnsSecSigner; /** * This class forms the command line implementation of a DNSSEC key generator - * + * * @author David Blacka */ -public class KeyGen extends CLBase -{ +public class KeyGen extends CLBase { private CLIState state; /** * This is a small inner class used to hold all of the command line option * state. */ - protected static class CLIState extends CLIStateBase - { - public int algorithm = 8; - public int keylength = 1024; - public boolean useLargeE = true; - public String outputfile = null; - public File keydir = null; - public boolean zoneKey = true; - public boolean kskFlag = false; - public String owner = null; - public long ttl = 86400; + protected static class CLIState extends CLIStateBase { + public int algorithm = 8; + public int keylength = 1024; + public boolean useLargeE = true; + public String outputfile = null; + public File keydir = null; + public boolean zoneKey = true; + public boolean kskFlag = false; + public String owner = null; + public long ttl = 86400; - public CLIState() - { + public CLIState() { super("jdnssec-keygen [..options..] name"); } /** * Set up the command line options. */ - protected void setupOptions(Options opts) - { + @Override + protected void setupOptions(Options opts) { // boolean options opts.addOption("k", "kskflag", false, - "Key is a key-signing-key (sets the SEP flag)."); + "Key is a key-signing-key (sets the SEP flag)."); opts.addOption("e", "large-exponent", false, "Use large RSA exponent (default)"); opts.addOption("E", "small-exponent", false, "Use small RSA exponent"); // Argument options - OptionBuilder.hasArg(); - OptionBuilder.withLongOpt("nametype"); - OptionBuilder.withArgName("type"); - OptionBuilder.withDescription("ZONE | OTHER (default ZONE)"); - opts.addOption(OptionBuilder.create('n')); + opts.addOption( + Option.builder("n").longOpt("nametype").hasArg().argName("type").desc("ZONE | OTHER (default ZONE)").build()); String[] algStrings = DnsKeyAlgorithm.getInstance().supportedAlgMnemonics(); - OptionBuilder.hasArg(); - OptionBuilder.withArgName("algorithm"); - OptionBuilder.withDescription(String.join(" | ", algStrings) + - " | alias, RSASHA256 is default."); - opts.addOption(OptionBuilder.create('a')); + String algStringSet = String.join(" | ", algStrings); + opts.addOption(Option.builder("a").hasArg().argName("algorithm") + .desc(algStringSet + " | alias, RSASHA256 is default.").build()); - OptionBuilder.hasArg(); - OptionBuilder.withArgName("size"); - OptionBuilder.withDescription("key size, in bits. default is 1024. " - + "RSA: [512..4096], DSA: [512..1024], DH: [128..4096], " - + "ECDSA: ignored"); - opts.addOption(OptionBuilder.create('b')); + opts.addOption(Option.builder("b").hasArg().argName("size").desc( + "key size, in bits (default 1024). RSA: [512..4096], DSA: [512..1024], DH: [128..4096], ECDSA: ignored, EdDSA: ignored") + .build()); + opts.addOption(Option.builder("f").hasArg().argName("file").longOpt("output-file") + .desc("base filename from the public/private key files").build()); + opts.addOption(Option.builder("d").hasArg().argName("dir").longOpt("keydir") + .desc("generated keyfiles are written to this directory").build()); + opts.addOption(Option.builder("T").hasArg().argName("ttl").longOpt("ttl") + .desc("use this TTL for the generated DNSKEY records (default: 86400").build()); - OptionBuilder.hasArg(); - OptionBuilder.withArgName("file"); - OptionBuilder.withLongOpt("output-file"); - OptionBuilder.withDescription("base filename for the public/private key files"); - opts.addOption(OptionBuilder.create('f')); - - OptionBuilder.hasArg(); - OptionBuilder.withLongOpt("keydir"); - OptionBuilder.withArgName("dir"); - OptionBuilder.withDescription("place generated key files in this " + "directory"); - opts.addOption(OptionBuilder.create('d')); } + @Override protected void processOptions(CommandLine cli) - throws org.apache.commons.cli.ParseException - { + throws org.apache.commons.cli.ParseException { String optstr = null; String[] optstrs = null; - if (cli.hasOption('k')) kskFlag = true; - if (cli.hasOption('e')) useLargeE = true; + if (cli.hasOption('k')) + kskFlag = true; + if (cli.hasOption('e')) + useLargeE = true; outputfile = cli.getOptionValue('f'); - if ((optstr = cli.getOptionValue('d')) != null) - { + if ((optstr = cli.getOptionValue('d')) != null) { keydir = new File(optstr); } - if ((optstr = cli.getOptionValue('n')) != null) - { - if (!optstr.equalsIgnoreCase("ZONE")) - { - zoneKey = false; - } + if ((optstr = cli.getOptionValue('n')) != null && !optstr.equalsIgnoreCase("ZONE")) { + zoneKey = false; } - if ((optstrs = cli.getOptionValues('A')) != null) - { - for (int i = 0; i < optstrs.length; i++) - { + if ((optstrs = cli.getOptionValues('A')) != null) { + for (int i = 0; i < optstrs.length; i++) { addArgAlias(optstrs[i]); } } - if ((optstr = cli.getOptionValue('a')) != null) - { - algorithm = parseAlg(optstr); - if (algorithm < 0) - { + if ((optstr = cli.getOptionValue('a')) != null) { + algorithm = CLIState.parseAlg(optstr); + if (algorithm < 0) { System.err.println("DNSSEC algorithm " + optstr + " is not supported"); usage(); } } - if ((optstr = cli.getOptionValue('b')) != null) - { + if ((optstr = cli.getOptionValue('b')) != null) { keylength = parseInt(optstr, 1024); } - if ((optstr = cli.getOptionValue("ttl")) != null) - { + if ((optstr = cli.getOptionValue("ttl")) != null) { ttl = parseInt(optstr, 86400); } - String[] cl_args = cli.getArgs(); + String[] args = cli.getArgs(); - if (cl_args.length < 1) - { + if (args.length < 1) { System.err.println("error: missing key owner name"); usage(); } - owner = cl_args[0]; + owner = args[0]; + } + + private static int parseAlg(String s) { + DnsKeyAlgorithm algs = DnsKeyAlgorithm.getInstance(); + + int alg = parseInt(s, -1); + if (alg > 0) { + if (algs.supportedAlgorithm(alg)) + return alg; + return -1; + } + + return algs.stringToAlgorithm(s); } } - - private static int parseAlg(String s) - { - DnsKeyAlgorithm algs = DnsKeyAlgorithm.getInstance(); - - int alg = parseInt(s, -1); - if (alg > 0) - { - if (algs.supportedAlgorithm(alg)) return alg; - return -1; - } - - return algs.stringToAlgorithm(s); - } - - public void execute() throws Exception - { + public void execute() throws Exception { JCEDnsSecSigner signer = new JCEDnsSecSigner(); // Minor hack to make the owner name absolute. - if (!state.owner.endsWith(".")) - { + if (!state.owner.endsWith(".")) { state.owner = state.owner + "."; } - Name owner_name = Name.fromString(state.owner); + Name ownerName = Name.fromString(state.owner); // Calculate our flags int flags = 0; - if (state.zoneKey) flags |= DNSKEYRecord.Flags.ZONE_KEY; - if (state.kskFlag) flags |= DNSKEYRecord.Flags.SEP_KEY; + if (state.zoneKey) + flags |= DNSKEYRecord.Flags.ZONE_KEY; + if (state.kskFlag) + flags |= DNSKEYRecord.Flags.SEP_KEY; - log.fine("create key pair with (name = " + owner_name + ", ttl = " + state.ttl + log.fine("create key pair with (name = " + ownerName + ", ttl = " + state.ttl + ", alg = " + state.algorithm + ", flags = " + flags + ", length = " + state.keylength + ")"); - DnsKeyPair pair = signer.generateKey(owner_name, state.ttl, DClass.IN, - state.algorithm, flags, state.keylength, - state.useLargeE); + DnsKeyPair pair = signer.generateKey(ownerName, state.ttl, DClass.IN, + state.algorithm, flags, state.keylength, + state.useLargeE); - if (state.outputfile != null) - { + if (state.outputfile != null) { BINDKeyUtils.writeKeyFiles(state.outputfile, pair, state.keydir); - } - else - { + } else { BINDKeyUtils.writeKeyFiles(pair, state.keydir); System.out.println(BINDKeyUtils.keyFileBase(pair)); } } - public static void main(String[] args) - { + public static void main(String[] args) { KeyGen tool = new KeyGen(); tool.state = new CLIState(); diff --git a/src/main/java/com/verisignlabs/dnssec/cl/KeyInfoTool.java b/src/main/java/com/verisignlabs/dnssec/cl/KeyInfoTool.java index 3eead2a..25df385 100644 --- a/src/main/java/com/verisignlabs/dnssec/cl/KeyInfoTool.java +++ b/src/main/java/com/verisignlabs/dnssec/cl/KeyInfoTool.java @@ -1,4 +1,4 @@ -// Copyright (C) 2001-2003, 2011 VeriSign, Inc. +// Copyright (C) 2001-2003, 2011, 2022 VeriSign, Inc. // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public @@ -20,60 +20,58 @@ package com.verisignlabs.dnssec.cl; import java.security.interfaces.DSAPublicKey; import java.security.interfaces.RSAPublicKey; -import org.apache.commons.cli.*; +import org.apache.commons.cli.CommandLine; +import org.apache.commons.cli.Options; +import org.apache.commons.cli.ParseException; import org.xbill.DNS.DNSKEYRecord; -import com.verisignlabs.dnssec.security.*; +import com.verisignlabs.dnssec.security.BINDKeyUtils; +import com.verisignlabs.dnssec.security.DnsKeyAlgorithm; +import com.verisignlabs.dnssec.security.DnsKeyPair; /** * This class forms the command line implementation of a key introspection tool. - * + * * @author David Blacka */ -public class KeyInfoTool extends CLBase -{ +public class KeyInfoTool extends CLBase { private CLIState state; /** * This is a small inner class used to hold all of the command line option * state. */ - protected static class CLIState extends CLIStateBase - { + protected static class CLIState extends CLIStateBase { public String[] keynames = null; - public CLIState() - { + public CLIState() { super("jdnssec-keyinfo [..options..] keyfile"); } /** * Set up the command line options. */ - protected void setupOptions(Options opts) - { + @Override + protected void setupOptions(Options opts) { // no special options at the moment. } - protected void processOptions(CommandLine cli) throws ParseException - { + @Override + protected void processOptions(CommandLine cli) throws ParseException { keynames = cli.getArgs(); - if (keynames.length < 1) - { + if (keynames.length < 1) { System.err.println("error: missing key file "); usage(); } } } - public void execute() throws Exception - { - for (int i = 0; i < state.keynames.length; ++i) - { - String keyname = state.keynames[i]; - DnsKeyPair key = BINDKeyUtils.loadKey(keyname, null); - DNSKEYRecord dnskey = key.getDNSKEYRecord(); + public void execute() throws Exception { + for (int i = 0; i < state.keynames.length; ++i) { + String keyname = state.keynames[i]; + DnsKeyPair key = BINDKeyUtils.loadKey(keyname, null); + DNSKEYRecord dnskey = key.getDNSKEYRecord(); DnsKeyAlgorithm dnskeyalg = DnsKeyAlgorithm.getInstance(); boolean isSEP = (dnskey.getFlags() & DNSKEYRecord.Flags.SEP_KEY) != 0; @@ -87,32 +85,25 @@ public class KeyInfoTool extends CLBase System.out.println("ID: " + dnskey.getFootprint()); System.out.println("KeyFileBase: " + BINDKeyUtils.keyFileBase(key)); int basetype = dnskeyalg.baseType(dnskey.getAlgorithm()); - switch (basetype) - { - case DnsKeyAlgorithm.RSA: { - RSAPublicKey pub = (RSAPublicKey) key.getPublic(); - System.out.println("RSA Public Exponent: " + pub.getPublicExponent()); - System.out.println("RSA Modulus: " + pub.getModulus()); - break; - } - case DnsKeyAlgorithm.DSA: { - DSAPublicKey pub = (DSAPublicKey) key.getPublic(); - System.out.println("DSA base (G): " + pub.getParams().getG()); - System.out.println("DSA prime (P): " + pub.getParams().getP()); - System.out.println("DSA subprime (Q): " + pub.getParams().getQ()); - System.out.println("DSA public (Y): " + pub.getY()); - break; - } + + if (basetype == DnsKeyAlgorithm.RSA) { + RSAPublicKey pub = (RSAPublicKey) key.getPublic(); + System.out.println("RSA Public Exponent: " + pub.getPublicExponent()); + System.out.println("RSA Modulus: " + pub.getModulus()); + } else if (basetype == DnsKeyAlgorithm.DSA) { + DSAPublicKey pub = (DSAPublicKey) key.getPublic(); + System.out.println("DSA base (G): " + pub.getParams().getG()); + System.out.println("DSA prime (P): " + pub.getParams().getP()); + System.out.println("DSA subprime (Q): " + pub.getParams().getQ()); + System.out.println("DSA public (Y): " + pub.getY()); } - if (state.keynames.length - i > 1) - { + if (state.keynames.length - i > 1) { System.out.println(); } } } - public static void main(String[] args) - { + public static void main(String[] args) { KeyInfoTool tool = new KeyInfoTool(); tool.state = new CLIState(); diff --git a/src/main/java/com/verisignlabs/dnssec/cl/SignKeyset.java b/src/main/java/com/verisignlabs/dnssec/cl/SignKeyset.java index bdc395d..fdc2f4f 100644 --- a/src/main/java/com/verisignlabs/dnssec/cl/SignKeyset.java +++ b/src/main/java/com/verisignlabs/dnssec/cl/SignKeyset.java @@ -1,4 +1,4 @@ -// Copyright (C) 2001-2003, 2011 VeriSign, Inc. +// Copyright (C) 2001-2003, 2011, 2022 VeriSign, Inc. // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public @@ -20,13 +20,13 @@ package com.verisignlabs.dnssec.cl; import java.io.File; import java.io.FileFilter; import java.io.IOException; +import java.time.Instant; import java.util.ArrayList; -import java.util.Date; -import java.util.Iterator; +import java.util.Collections; import java.util.List; import org.apache.commons.cli.CommandLine; -import org.apache.commons.cli.OptionBuilder; +import org.apache.commons.cli.Option; import org.apache.commons.cli.Options; import org.xbill.DNS.Name; import org.xbill.DNS.RRSIGRecord; @@ -34,7 +34,12 @@ import org.xbill.DNS.RRset; import org.xbill.DNS.Record; import org.xbill.DNS.Type; -import com.verisignlabs.dnssec.security.*; +import com.verisignlabs.dnssec.security.BINDKeyUtils; +import com.verisignlabs.dnssec.security.DnsKeyPair; +import com.verisignlabs.dnssec.security.DnsSecVerifier; +import com.verisignlabs.dnssec.security.JCEDnsSecSigner; +import com.verisignlabs.dnssec.security.SignUtils; +import com.verisignlabs.dnssec.security.ZoneUtils; /** * This class forms the command line implementation of a DNSSEC keyset signer. @@ -43,94 +48,66 @@ import com.verisignlabs.dnssec.security.*; * * @author David Blacka */ -public class SignKeyset extends CLBase -{ +public class SignKeyset extends CLBase { private CLIState state; /** * This is an inner class used to hold all of the command line option state. */ - protected static class CLIState extends CLIStateBase - { - public File keyDirectory = null; - public String[] keyFiles = null; - public Date start = null; - public Date expire = null; - public String inputfile = null; - public String outputfile = null; - public boolean verifySigs = false; + protected static class CLIState extends CLIStateBase { + public File keyDirectory = null; + public String[] keyFiles = null; + public Instant start = null; + public Instant expire = null; + public String inputfile = null; + public String outputfile = null; + public boolean verifySigs = false; - public CLIState() - { + public CLIState() { super("jdnssec-signkeyset [..options..] dnskeyset_file [key_file ...]"); } /** * Set up the command line options. */ - protected void setupOptions(Options opts) - { + @Override + protected void setupOptions(Options opts) { // boolean options opts.addOption("a", "verify", false, "verify generated signatures>"); // Argument options - OptionBuilder.hasArg(); - OptionBuilder.withArgName("dir"); - OptionBuilder.withLongOpt("key-directory"); - OptionBuilder.withDescription("directory to find key files (default '.')."); - opts.addOption(OptionBuilder.create('D')); - - OptionBuilder.hasArg(); - OptionBuilder.withArgName("time/offset"); - OptionBuilder.withLongOpt("start-time"); - OptionBuilder.withDescription("signature starting time (default is now - 1 hour)"); - opts.addOption(OptionBuilder.create('s')); - - OptionBuilder.hasArg(); - OptionBuilder.withArgName("time/offset"); - OptionBuilder.withLongOpt("expire-time"); - OptionBuilder.withDescription("signature expiration time (default is start-time + 30 days)."); - opts.addOption(OptionBuilder.create('e')); - - OptionBuilder.hasArg(); - OptionBuilder.withArgName("outfile"); - OptionBuilder.withDescription("file the signed keyset is written to."); - opts.addOption(OptionBuilder.create('f')); + opts.addOption(Option.builder("D").hasArg().argName("dir").longOpt("key-directory").desc("directory where key files are found (default '.').").build()); + opts.addOption(Option.builder("s").hasArg().argName("time/offset").longOpt("start-time").desc("signature starting time (default is now - 1 hour)").build()); + opts.addOption(Option.builder("e").hasArg().argName("time/offset").longOpt("expire-time").desc("signature expiration time (default is start-time + 30 days)").build()); + opts.addOption(Option.builder("f").hasArg().argName("outfile").desc("file the signed keyset is written to").build()); } + @Override protected void processOptions(CommandLine cli) - throws org.apache.commons.cli.ParseException - { + throws org.apache.commons.cli.ParseException { String optstr = null; - if (cli.hasOption('a')) verifySigs = true; + if (cli.hasOption('a')) + verifySigs = true; - if ((optstr = cli.getOptionValue('D')) != null) - { + if ((optstr = cli.getOptionValue('D')) != null) { keyDirectory = new File(optstr); - if (!keyDirectory.isDirectory()) - { + if (!keyDirectory.isDirectory()) { System.err.println("error: " + optstr + " is not a directory"); usage(); } } - if ((optstr = cli.getOptionValue('s')) != null) - { + if ((optstr = cli.getOptionValue('s')) != null) { start = convertDuration(null, optstr); - } - else - { + } else { // default is now - 1 hour. - start = new Date(System.currentTimeMillis() - (3600 * 1000)); + start = Instant.now().minusSeconds(3600); } - if ((optstr = cli.getOptionValue('e')) != null) - { + if ((optstr = cli.getOptionValue('e')) != null) { expire = convertDuration(start, optstr); - } - else - { + } else { expire = convertDuration(start, "+2592000"); // 30 days } @@ -138,15 +115,13 @@ public class SignKeyset extends CLBase String[] files = cli.getArgs(); - if (files.length < 1) - { + if (files.length < 1) { System.err.println("error: missing zone file and/or key files"); usage(); } inputfile = files[0]; - if (files.length > 1) - { + if (files.length > 1) { keyFiles = new String[files.length - 1]; System.arraycopy(files, 1, keyFiles, 0, files.length - 1); } @@ -156,23 +131,19 @@ public class SignKeyset extends CLBase /** * Verify the generated signatures. * - * @param zonename - * the origin name of the zone. * @param records - * a list of {@link org.xbill.DNS.Record}s. + * a list of {@link org.xbill.DNS.Record}s. * @param keypairs - * a list of keypairs used the sign the zone. + * a list of keypairs used the sign the zone. * @return true if all of the signatures validated. */ - private static boolean verifySigs(Name zonename, List records, - List keypairs) - { + private static boolean verifySigs(List records, + List keypairs) { boolean secure = true; DnsSecVerifier verifier = new DnsSecVerifier(); - for (DnsKeyPair pair : keypairs) - { + for (DnsKeyPair pair : keypairs) { verifier.addTrustedKey(pair); } @@ -180,16 +151,15 @@ public class SignKeyset extends CLBase List rrsets = SignUtils.assembleIntoRRsets(records); - for (RRset rrset : rrsets) - { + for (RRset rrset : rrsets) { // skip unsigned rrsets. - if (!rrset.sigs().hasNext()) continue; + if (rrset.sigs().isEmpty()) + continue; boolean result = verifier.verify(rrset); - if (!result) - { - log.fine("Signatures did not verify for RRset: " + rrset); + if (!result) { + staticLog.fine("Signatures did not verify for RRset: " + rrset); secure = false; } } @@ -201,57 +171,54 @@ public class SignKeyset extends CLBase * Load the key pairs from the key files. * * @param keyfiles - * a string array containing the base names or paths of the keys - * to be loaded. - * @param start_index - * the starting index of keyfiles string array to use. This - * allows us to use the straight command line argument array. + * a string array containing the base names or paths of the + * keys + * to be loaded. + * @param startIndex + * the starting index of keyfiles string array to use. This + * allows us to use the straight command line argument array. * @param inDirectory - * the directory to look in (may be null). + * the directory to look in (may be null). * @return a list of keypair objects. */ - private static List getKeys(String[] keyfiles, int start_index, - File inDirectory) throws IOException - { - if (keyfiles == null) return null; + private static List getKeys(String[] keyfiles, int startIndex, + File inDirectory) throws IOException { + if (keyfiles == null) + return Collections.emptyList(); - int len = keyfiles.length - start_index; - if (len <= 0) return null; + int len = keyfiles.length - startIndex; + if (len <= 0) + return Collections.emptyList(); - ArrayList keys = new ArrayList(len); + ArrayList keys = new ArrayList<>(len); - for (int i = start_index; i < keyfiles.length; i++) - { + for (int i = startIndex; i < keyfiles.length; i++) { DnsKeyPair k = BINDKeyUtils.loadKeyPair(keyfiles[i], inDirectory); - if (k != null) keys.add(k); + if (k != null) + keys.add(k); } return keys; } - private static class KeyFileFilter implements FileFilter - { + private static class KeyFileFilter implements FileFilter { private String prefix; - public KeyFileFilter(Name origin) - { + public KeyFileFilter(Name origin) { prefix = "K" + origin.toString(); } - public boolean accept(File pathname) - { - if (!pathname.isFile()) return false; + public boolean accept(File pathname) { + if (!pathname.isFile()) + return false; String name = pathname.getName(); - if (name.startsWith(prefix) && name.endsWith(".private")) return true; - return false; + return (name.startsWith(prefix) && name.endsWith(".private")); } } private static List findZoneKeys(File inDirectory, Name zonename) - throws IOException - { - if (inDirectory == null) - { + throws IOException { + if (inDirectory == null) { inDirectory = new File("."); } @@ -260,53 +227,43 @@ public class SignKeyset extends CLBase File[] files = inDirectory.listFiles(filter); // read in all of the records - ArrayList keys = new ArrayList(); - for (int i = 0; i < files.length; i++) - { + ArrayList keys = new ArrayList<>(); + for (int i = 0; i < files.length; i++) { DnsKeyPair p = BINDKeyUtils.loadKeyPair(files[i].getName(), inDirectory); keys.add(p); } - if (keys.size() > 0) return keys; - return null; + return keys; } - @SuppressWarnings("unchecked") - public void execute() throws Exception - { + public void execute() throws Exception { // Read in the zone List records = ZoneUtils.readZoneFile(state.inputfile, null); - if (records == null || records.size() == 0) - { + if (records == null || records.isEmpty()) { System.err.println("error: empty keyset file"); state.usage(); } // Make sure that all records are DNSKEYs with the same name. - Name keysetName = null; - RRset keyset = new RRset(); + Name keysetName = null; + RRset keyset = new RRset(); - for (Record r : records) - { - if (r.getType() != Type.DNSKEY) - { + for (Record r : records) { + if (r.getType() != Type.DNSKEY) { System.err.println("error: Non DNSKEY RR found in keyset: " + r); continue; } - if (keysetName == null) - { + if (keysetName == null) { keysetName = r.getName(); } - if (!r.getName().equals(keysetName)) - { + if (!r.getName().equals(keysetName)) { System.err.println("error: DNSKEY with a different name found!"); state.usage(); } keyset.addRR(r); } - if (keyset.size() == 0) - { + if (keyset.size() == 0) { System.err.println("error: No DNSKEYs found in keyset file"); state.usage(); } @@ -317,27 +274,22 @@ public class SignKeyset extends CLBase // If we *still* don't have any key pairs, look for keys the key // directory // that match - if (keypairs == null) - { + if (keypairs == null) { keypairs = findZoneKeys(state.keyDirectory, keysetName); } // If there *still* aren't any ZSKs defined, bail. - if (keypairs == null || keypairs.size() == 0) - { + if (keypairs == null || keypairs.isEmpty() || keysetName == null) { System.err.println("error: No signing keys could be determined."); state.usage(); + return; } // default the output file, if not set. - if (state.outputfile == null) - { - if (keysetName.isAbsolute()) - { + if (state.outputfile == null) { + if (keysetName.isAbsolute()) { state.outputfile = keysetName + "signed_keyset"; - } - else - { + } else { state.outputfile = keysetName + ".signed_keyset"; } } @@ -345,46 +297,36 @@ public class SignKeyset extends CLBase JCEDnsSecSigner signer = new JCEDnsSecSigner(); List sigs = signer.signRRset(keyset, keypairs, state.start, state.expire); - for (RRSIGRecord s : sigs) - { + for (RRSIGRecord s : sigs) { keyset.addRR(s); } // write out the signed RRset - List signed_records = new ArrayList(); - for (Iterator i = keyset.rrs(); i.hasNext();) - { - signed_records.add(i.next()); + List signedRecords = new ArrayList<>(); + for (Record r : keyset.rrs()) { + signedRecords.add(r); } - for (Iterator i = keyset.sigs(); i.hasNext();) - { - signed_records.add(i.next()); + for (RRSIGRecord s : keyset.sigs()) { + signedRecords.add(s); } // write out the signed zone - ZoneUtils.writeZoneFile(signed_records, state.outputfile); + ZoneUtils.writeZoneFile(signedRecords, state.outputfile); - if (state.verifySigs) - { + if (state.verifySigs) { log.fine("verifying generated signatures"); - boolean res = verifySigs(keysetName, signed_records, keypairs); + boolean res = verifySigs(signedRecords, keypairs); - if (res) - { + if (res) { System.out.println("Generated signatures verified"); - // log.info("Generated signatures verified"); - } - else - { + } else { System.out.println("Generated signatures did not verify."); - // log.warn("Generated signatures did not verify."); } } } - public static void main(String[] args) - { + public static void main(String[] args) { SignKeyset tool = new SignKeyset(); tool.state = new CLIState(); diff --git a/src/main/java/com/verisignlabs/dnssec/cl/SignRRset.java b/src/main/java/com/verisignlabs/dnssec/cl/SignRRset.java index 23d4938..69cefd6 100644 --- a/src/main/java/com/verisignlabs/dnssec/cl/SignRRset.java +++ b/src/main/java/com/verisignlabs/dnssec/cl/SignRRset.java @@ -1,4 +1,4 @@ -// Copyright (C) 2001-2003, 2011 VeriSign, Inc. +// Copyright (C) 2001-2003, 2011, 2022 VeriSign, Inc. // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public @@ -19,22 +19,26 @@ package com.verisignlabs.dnssec.cl; import java.io.File; import java.io.IOException; +import java.time.Instant; import java.util.ArrayList; -import java.util.Date; -import java.util.Iterator; +import java.util.Collections; import java.util.List; import org.apache.commons.cli.CommandLine; -import org.apache.commons.cli.OptionBuilder; +import org.apache.commons.cli.Option; import org.apache.commons.cli.Options; - import org.xbill.DNS.Name; import org.xbill.DNS.RRSIGRecord; import org.xbill.DNS.RRset; import org.xbill.DNS.Record; import org.xbill.DNS.Type; -import com.verisignlabs.dnssec.security.*; +import com.verisignlabs.dnssec.security.BINDKeyUtils; +import com.verisignlabs.dnssec.security.DnsKeyPair; +import com.verisignlabs.dnssec.security.DnsSecVerifier; +import com.verisignlabs.dnssec.security.JCEDnsSecSigner; +import com.verisignlabs.dnssec.security.SignUtils; +import com.verisignlabs.dnssec.security.ZoneUtils; /** * This class forms the command line implementation of a DNSSEC RRset signer. @@ -45,95 +49,72 @@ import com.verisignlabs.dnssec.security.*; * * @author David Blacka */ -public class SignRRset extends CLBase -{ +public class SignRRset extends CLBase { private CLIState state; /** * This is an inner class used to hold all of the command line option state. */ - protected static class CLIState extends CLIStateBase - { - private File keyDirectory = null; - public String[] keyFiles = null; - public Date start = null; - public Date expire = null; - public String inputfile = null; - public String outputfile = null; - public boolean verifySigs = false; - public boolean verboseSigning = false; + protected static class CLIState extends CLIStateBase { + private File keyDirectory = null; + public String[] keyFiles = null; + public Instant start = null; + public Instant expire = null; + public String inputfile = null; + public String outputfile = null; + public boolean verifySigs = false; + public boolean verboseSigning = false; - public CLIState() - { + public CLIState() { super("jdnssec-signrrset [..options..] rrset_file key_file [key_file ...]"); } /** * Set up the command line options. */ - protected void setupOptions(Options opts) - { + @Override + protected void setupOptions(Options opts) { // boolean options opts.addOption("a", "verify", false, "verify generated signatures>"); opts.addOption("V", "verbose-signing", false, "Display verbose signing activity."); - OptionBuilder.hasArg(); - OptionBuilder.withArgName("dir"); - OptionBuilder.withLongOpt("key-directory"); - OptionBuilder.withDescription("directory to find key files (default '.')."); - opts.addOption(OptionBuilder.create('D')); - - OptionBuilder.hasArg(); - OptionBuilder.withArgName("time/offset"); - OptionBuilder.withLongOpt("start-time"); - OptionBuilder.withDescription("signature starting time (default is now - 1 hour)"); - opts.addOption(OptionBuilder.create('s')); - - OptionBuilder.hasArg(); - OptionBuilder.withArgName("time/offset"); - OptionBuilder.withLongOpt("expire-time"); - OptionBuilder.withDescription("signature expiration time (default is start-time + 30 days)."); - opts.addOption(OptionBuilder.create('e')); - - OptionBuilder.hasArg(); - OptionBuilder.withArgName("outfile"); - OptionBuilder.withDescription("file the signed rrset is written to."); - opts.addOption(OptionBuilder.create('f')); + opts.addOption(Option.builder("D").hasArg().argName("dir").longOpt("key-directory") + .desc("directory to find key files (default '.'").build()); + opts.addOption(Option.builder("s").hasArg().argName("time/offset").longOpt("start-time") + .desc("signature starting time (default is now - 1 hour)").build()); + opts.addOption(Option.builder("e").hasArg().argName("time/offset").longOpt("expire-time") + .desc("signature expiration time (default is start-time + 30 days)").build()); + opts.addOption( + Option.builder("f").hasArg().argName("outfile").desc("file the the signed rrset is written to").build()); } - protected void processOptions(CommandLine cli) throws org.apache.commons.cli.ParseException - { + @Override + protected void processOptions(CommandLine cli) throws org.apache.commons.cli.ParseException { String optstr = null; - if (cli.hasOption('a')) verifySigs = true; - if (cli.hasOption('V')) verboseSigning = true; + if (cli.hasOption('a')) + verifySigs = true; + if (cli.hasOption('V')) + verboseSigning = true; - if ((optstr = cli.getOptionValue('D')) != null) - { + if ((optstr = cli.getOptionValue('D')) != null) { keyDirectory = new File(optstr); - if (!keyDirectory.isDirectory()) - { + if (!keyDirectory.isDirectory()) { System.err.println("error: " + optstr + " is not a directory"); usage(); } } - if ((optstr = cli.getOptionValue('s')) != null) - { + if ((optstr = cli.getOptionValue('s')) != null) { start = convertDuration(null, optstr); - } - else - { + } else { // default is now - 1 hour. - start = new Date(System.currentTimeMillis() - (3600 * 1000)); + start = Instant.now().minusSeconds(3600); } - if ((optstr = cli.getOptionValue('e')) != null) - { + if ((optstr = cli.getOptionValue('e')) != null) { expire = convertDuration(start, optstr); - } - else - { + } else { expire = convertDuration(start, "+2592000"); // 30 days } @@ -141,15 +122,13 @@ public class SignRRset extends CLBase String[] files = cli.getArgs(); - if (files.length < 1) - { + if (files.length < 1) { System.err.println("error: missing zone file and/or key files"); usage(); } inputfile = files[0]; - if (files.length > 1) - { + if (files.length > 1) { keyFiles = new String[files.length - 1]; System.arraycopy(files, 1, keyFiles, 0, files.length - 1); } @@ -159,22 +138,18 @@ public class SignRRset extends CLBase /** * Verify the generated signatures. * - * @param zonename - * the origin name of the zone. * @param records - * a list of {@link org.xbill.DNS.Record}s. + * a list of {@link org.xbill.DNS.Record}s. * @param keypairs - * a list of keypairs used the sign the zone. + * a list of keypairs used the sign the zone. * @return true if all of the signatures validated. */ - private static boolean verifySigs(Name zonename, List records, List keypairs) - { + private static boolean verifySigs(List records, List keypairs) { boolean secure = true; DnsSecVerifier verifier = new DnsSecVerifier(); - for (DnsKeyPair pair : keypairs) - { + for (DnsKeyPair pair : keypairs) { verifier.addTrustedKey(pair); } @@ -182,16 +157,16 @@ public class SignRRset extends CLBase List rrsets = SignUtils.assembleIntoRRsets(records); - for (RRset rrset : rrsets) - { + for (RRset rrset : rrsets) { // skip unsigned rrsets. - if (!rrset.sigs().hasNext()) continue; + if (rrset.sigs().isEmpty()) { + continue; + } boolean result = verifier.verify(rrset); - if (!result) - { - log.fine("Signatures did not verify for RRset: " + rrset); + if (!result) { + staticLog.fine("Signatures did not verify for RRset: " + rrset); secure = false; } } @@ -203,41 +178,40 @@ public class SignRRset extends CLBase * Load the key pairs from the key files. * * @param keyfiles - * a string array containing the base names or paths of the keys - * to be loaded. - * @param start_index - * the starting index of keyfiles string array to use. This - * allows us to use the straight command line argument array. + * a string array containing the base names or paths of the + * keys + * to be loaded. + * @param startIndex + * the starting index of keyfiles string array to use. This + * allows us to use the straight command line argument array. * @param inDirectory - * the directory to look in (may be null). + * the directory to look in (may be null). * @return a list of keypair objects. */ - private static List getKeys(String[] keyfiles, int start_index, - File inDirectory) throws IOException - { - if (keyfiles == null) return null; + private static List getKeys(String[] keyfiles, int startIndex, + File inDirectory) throws IOException { + if (keyfiles == null) + return Collections.emptyList(); - int len = keyfiles.length - start_index; - if (len <= 0) return null; + int len = keyfiles.length - startIndex; + if (len <= 0) + return Collections.emptyList(); - ArrayList keys = new ArrayList(len); + ArrayList keys = new ArrayList<>(len); - for (int i = start_index; i < keyfiles.length; i++) - { + for (int i = startIndex; i < keyfiles.length; i++) { DnsKeyPair k = BINDKeyUtils.loadKeyPair(keyfiles[i], inDirectory); - if (k != null) keys.add(k); + if (k != null) + keys.add(k); } return keys; } - @SuppressWarnings("unchecked") - public void execute() throws Exception - { + public void execute() throws Exception { // Read in the zone List records = ZoneUtils.readZoneFile(state.inputfile, null); - if (records == null || records.size() == 0) - { + if (records == null || records.isEmpty()) { System.err.println("error: empty RRset file"); state.usage(); } @@ -245,44 +219,37 @@ public class SignRRset extends CLBase // consist of more than one RRset. RRset rrset = null; - for (Record r : records) - { + for (Record r : records) { // skip RRSIGs - if (r.getType() == Type.RRSIG || r.getType() == Type.SIG) - { + if (r.getType() == Type.RRSIG || r.getType() == Type.SIG) { continue; } // Handle the first record. - if (rrset == null) - { + if (rrset == null) { rrset = new RRset(); rrset.addRR(r); continue; } // Ensure that the remaining records all belong to the same rrset. if (rrset.getName().equals(r.getName()) && rrset.getType() == r.getType() - && rrset.getDClass() == r.getDClass()) - { + && rrset.getDClass() == r.getDClass()) { rrset.addRR(r); - } - else - { + } else { System.err.println("Records do not all belong to the same RRset."); state.usage(); } } - if (rrset.size() == 0) - { + if (rrset == null || rrset.size() == 0) { System.err.println("No records found in inputfile."); state.usage(); + return; } // Load the key pairs. - if (state.keyFiles.length == 0) - { + if (state.keyFiles.length == 0) { System.err.println("error: at least one keyfile must be specified"); state.usage(); } @@ -293,69 +260,55 @@ public class SignRRset extends CLBase // This will be used as the zone name, too. Name keysetName = null; - for (DnsKeyPair pair : keypairs) - { - if (keysetName == null) - { + for (DnsKeyPair pair : keypairs) { + if (keysetName == null) { keysetName = pair.getDNSKEYName(); continue; } - if (!pair.getDNSKEYName().equals(keysetName)) - { + if (!pair.getDNSKEYName().equals(keysetName)) { System.err.println("Keys do not all have the same name."); state.usage(); } } // default the output file, if not set. - if (state.outputfile == null && !state.inputfile.equals("-")) - { + if (state.outputfile == null && !state.inputfile.equals("-")) { state.outputfile = state.inputfile + ".signed"; } JCEDnsSecSigner signer = new JCEDnsSecSigner(state.verboseSigning); List sigs = signer.signRRset(rrset, keypairs, state.start, state.expire); - for (RRSIGRecord s : sigs) - { + for (RRSIGRecord s : sigs) { rrset.addRR(s); } // write out the signed RRset - List signed_records = new ArrayList(); - for (Iterator i = rrset.rrs(); i.hasNext();) - { - signed_records.add(i.next()); + List signedRecords = new ArrayList<>(); + for (Record r : rrset.rrs()) { + signedRecords.add(r); } - for (Iterator i = rrset.sigs(); i.hasNext();) - { - signed_records.add(i.next()); + for (RRSIGRecord sigrec : rrset.sigs()) { + signedRecords.add(sigrec); } // write out the signed zone - ZoneUtils.writeZoneFile(signed_records, state.outputfile); + ZoneUtils.writeZoneFile(signedRecords, state.outputfile); - if (state.verifySigs) - { + if (state.verifySigs) { log.fine("verifying generated signatures"); - boolean res = verifySigs(keysetName, signed_records, keypairs); + boolean res = verifySigs(signedRecords, keypairs); - if (res) - { + if (res) { System.out.println("Generated signatures verified"); - // log.info("Generated signatures verified"); - } - else - { + } else { System.out.println("Generated signatures did not verify."); - // log.warn("Generated signatures did not verify."); } } } - public static void main(String[] args) - { + public static void main(String[] args) { SignRRset tool = new SignRRset(); tool.state = new CLIState(); diff --git a/src/main/java/com/verisignlabs/dnssec/cl/SignZone.java b/src/main/java/com/verisignlabs/dnssec/cl/SignZone.java index a08df40..293446c 100644 --- a/src/main/java/com/verisignlabs/dnssec/cl/SignZone.java +++ b/src/main/java/com/verisignlabs/dnssec/cl/SignZone.java @@ -1,4 +1,4 @@ -// Copyright (C) 2001-2003, 2011 VeriSign, Inc. +// Copyright (C) 2001-2003, 2011, 2022 VeriSign, Inc. // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public @@ -22,19 +22,19 @@ import java.io.File; import java.io.FileFilter; import java.io.FileReader; import java.io.IOException; +import java.time.Instant; import java.util.ArrayList; -import java.util.Date; +import java.util.Collections; import java.util.Iterator; import java.util.List; import java.util.Random; import org.apache.commons.cli.CommandLine; -import org.apache.commons.cli.OptionBuilder; +import org.apache.commons.cli.Option; import org.apache.commons.cli.Options; import org.apache.commons.cli.ParseException; - import org.xbill.DNS.DNSKEYRecord; -import org.xbill.DNS.DSRecord; +import org.xbill.DNS.DNSSEC; import org.xbill.DNS.Name; import org.xbill.DNS.RRset; import org.xbill.DNS.Record; @@ -51,182 +51,127 @@ import com.verisignlabs.dnssec.security.ZoneUtils; /** * This class forms the command line implementation of a DNSSEC zone signer. - * + * * @author David Blacka */ -public class SignZone extends CLBase -{ +public class SignZone extends CLBase { private CLIState state; /** * This is an inner class used to hold all of the command line option state. */ - private static class CLIState extends CLIStateBase - { - public File keyDirectory = null; - public File keysetDirectory = null; - public String[] kskFiles = null; - public String[] keyFiles = null; - public String zonefile = null; - public Date start = null; - public Date expire = null; - public String outputfile = null; - public boolean verifySigs = false; - public boolean useOptOut = false; - public boolean fullySignKeyset = false; - public List includeNames = null; - public boolean useNsec3 = false; - public byte[] salt = null; - public int iterations = 0; - public int digest_id = DSRecord.SHA1_DIGEST_ID; - public long nsec3paramttl = -1; - public boolean verboseSigning = false; + private static class CLIState extends CLIStateBase { + public File keyDirectory = null; + public File keysetDirectory = null; + public String[] kskFiles = null; + public String[] keyFiles = null; + public String zonefile = null; + public Instant start = null; + public Instant expire = null; + public String outputfile = null; + public boolean verifySigs = false; + public boolean useOptOut = false; + public boolean fullySignKeyset = false; + public List includeNames = null; + public boolean useNsec3 = false; + public byte[] salt = null; + public int iterations = 0; + public int digestId = DNSSEC.Digest.SHA1; + public long nsec3paramttl = -1; + public boolean verboseSigning = false; - public CLIState() - { + public CLIState() { super("jdnssec-signzone [..options..] zone_file [key_file ...]"); } - protected void setupOptions(Options opts) - { + @Override + protected void setupOptions(Options opts) { // boolean options opts.addOption("a", "verify", false, "verify generated signatures>"); opts.addOption("F", "fully-sign-keyset", false, - "sign the zone apex keyset with all available keys."); + "sign the zone apex keyset with all available keys."); opts.addOption("V", "verbose-signing", false, "Display verbose signing activity."); - // Argument options - OptionBuilder.hasArg(); - OptionBuilder.withArgName("dir"); - OptionBuilder.withLongOpt("keyset-directory"); - OptionBuilder.withDescription("directory to find keyset files (default '.')."); - opts.addOption(OptionBuilder.create('d')); - - OptionBuilder.hasArg(); - OptionBuilder.withArgName("dir"); - OptionBuilder.withLongOpt("key-directory"); - OptionBuilder.withDescription("directory to find key files (default '.')."); - opts.addOption(OptionBuilder.create('D')); - - OptionBuilder.hasArg(); - OptionBuilder.withArgName("time/offset"); - OptionBuilder.withLongOpt("start-time"); - OptionBuilder.withDescription("signature starting time (default is now - 1 hour)"); - opts.addOption(OptionBuilder.create('s')); - - OptionBuilder.hasArg(); - OptionBuilder.withArgName("time/offset"); - OptionBuilder.withLongOpt("expire-time"); - OptionBuilder.withDescription("signature expiration time (default is start-time + 30 days)."); - opts.addOption(OptionBuilder.create('e')); - - OptionBuilder.hasArg(); - OptionBuilder.withArgName("outfile"); - OptionBuilder.withDescription("file the signed zone is written to (default is .signed)."); - opts.addOption(OptionBuilder.create('f')); - - OptionBuilder.hasArgs(); - OptionBuilder.withArgName("KSK file"); - OptionBuilder.withLongOpt("ksk-file"); - OptionBuilder.withDescription("this key is a key signing key (may repeat)."); - opts.addOption(OptionBuilder.create('k')); - - OptionBuilder.hasArg(); - OptionBuilder.withArgName("file"); - OptionBuilder.withLongOpt("include-file"); - OptionBuilder.withDescription("include names in this file in the NSEC/NSEC3 chain."); - opts.addOption(OptionBuilder.create('I')); + opts.addOption(Option.builder("d").hasArg().argName("dir").longOpt("keyset-directory") + .desc("directory to find keyset files (default '.')").build()); + opts.addOption(Option.builder("D").hasArg().argName("dir").longOpt("key-directory") + .desc("directory to find key files (default '.'").build()); + opts.addOption(Option.builder("s").hasArg().argName("time/offset").longOpt("start-time") + .desc("signature starting time (default is now - 1 hour)").build()); + opts.addOption(Option.builder("e").hasArg().argName("time/offset").longOpt("expire-time") + .desc("signature expiration time (default is start-time + 30 days)").build()); + opts.addOption( + Option.builder("f").hasArg().argName("outfile").desc("file the the signed rrset is written to").build()); + opts.addOption(Option.builder("k").hasArgs().argName("KSK file").longOpt("ksk-file") + .desc("This key is a Key-Signing Key (may repeat)").build()); + opts.addOption(Option.builder("I").hasArg().argName("file").longOpt("include-file") + .desc("include names in the file in the NSEC/NSEC3 chain").build()); // NSEC3 options opts.addOption("3", "use-nsec3", false, "use NSEC3 instead of NSEC"); opts.addOption("O", "use-opt-out", false, - "generate a fully Opt-Out zone (only valid with NSEC3)."); + "generate a fully Opt-Out zone (only valid with NSEC3)."); + opts.addOption( + Option.builder("S").hasArg().argName("hex value").longOpt("salt").desc("Supply a salt value").build()); + opts.addOption(Option.builder("R").hasArg().argName("length").longOpt("random-salt") + .desc("Generate a random salt of ").build()); + opts.addOption(Option.builder("H").hasArg().argName("count").longOpt("iterations") + .desc("Use this many addtional iterations in NSEC3 (default 0)").build()); + opts.addOption(Option.builder().hasArg().longOpt("nsec3paramttl").argName("ttl") + .desc("Use this TTL for the NSEC3PARAM record (default is min(soa.min, soa.ttl))").build()); + opts.addOption(Option.builder().hasArg().argName("id").longOpt("ds-digest") + .desc("Digest algorithm to use for generated DS records").build()); - OptionBuilder.hasArg(); - OptionBuilder.withLongOpt("salt"); - OptionBuilder.withArgName("hex value"); - OptionBuilder.withDescription("supply a salt value."); - opts.addOption(OptionBuilder.create('S')); - - OptionBuilder.hasArg(); - OptionBuilder.withLongOpt("random-salt"); - OptionBuilder.withArgName("length"); - OptionBuilder.withDescription("generate a random salt."); - opts.addOption(OptionBuilder.create('R')); - - OptionBuilder.hasArg(); - OptionBuilder.withLongOpt("iterations"); - OptionBuilder.withArgName("value"); - OptionBuilder.withDescription("use this value for the iterations in NSEC3."); - opts.addOption(OptionBuilder.create()); - - OptionBuilder.hasArg(); - OptionBuilder.withLongOpt("nsec3paramttl"); - OptionBuilder.withArgName("ttl"); - OptionBuilder.withDescription("use this value for the NSEC3PARAM RR ttl"); - opts.addOption(OptionBuilder.create()); - - OptionBuilder.hasArg(); - OptionBuilder.withArgName("id"); - OptionBuilder.withLongOpt("ds-digest"); - OptionBuilder.withDescription("Digest algorithm to use for generated DSs"); - opts.addOption(OptionBuilder.create()); } - protected void processOptions(CommandLine cli) throws ParseException - { + @Override + protected void processOptions(CommandLine cli) throws ParseException { String optstr = null; - if (cli.hasOption('a')) verifySigs = true; - if (cli.hasOption('3')) useNsec3 = true; - if (cli.hasOption('O')) useOptOut = true; - if (cli.hasOption('V')) verboseSigning = true; + if (cli.hasOption('a')) + verifySigs = true; + if (cli.hasOption('3')) + useNsec3 = true; + if (cli.hasOption('O')) + useOptOut = true; + if (cli.hasOption('V')) + verboseSigning = true; - if (useOptOut && !useNsec3) - { + if (useOptOut && !useNsec3) { System.err.println("Opt-Out not supported without NSEC3 -- ignored."); useOptOut = false; } - if (cli.hasOption('F')) fullySignKeyset = true; + if (cli.hasOption('F')) + fullySignKeyset = true; - if ((optstr = cli.getOptionValue('d')) != null) - { + if ((optstr = cli.getOptionValue('d')) != null) { keysetDirectory = new File(optstr); - if (!keysetDirectory.isDirectory()) - { + if (!keysetDirectory.isDirectory()) { System.err.println("error: " + optstr + " is not a directory"); usage(); } } - if ((optstr = cli.getOptionValue('D')) != null) - { + if ((optstr = cli.getOptionValue('D')) != null) { keyDirectory = new File(optstr); - if (!keyDirectory.isDirectory()) - { + if (!keyDirectory.isDirectory()) { System.err.println("error: " + optstr + " is not a directory"); usage(); } } - if ((optstr = cli.getOptionValue('s')) != null) - { + if ((optstr = cli.getOptionValue('s')) != null) { start = CLBase.convertDuration(null, optstr); - } - else - { + } else { // default is now - 1 hour. - start = new Date(System.currentTimeMillis() - (3600 * 1000)); + start = Instant.now().minusSeconds(3600); } - if ((optstr = cli.getOptionValue('e')) != null) - { + if ((optstr = cli.getOptionValue('e')) != null) { expire = CLBase.convertDuration(start, optstr); - } - else - { + } else { expire = CLBase.convertDuration(start, "+2592000"); // 30 days } @@ -234,102 +179,115 @@ public class SignZone extends CLBase kskFiles = cli.getOptionValues('k'); - if ((optstr = cli.getOptionValue('I')) != null) - { + if ((optstr = cli.getOptionValue('I')) != null) { File includeNamesFile = new File(optstr); - try - { - includeNames = getNameList(includeNamesFile); - } - catch (IOException e) - { + try { + includeNames = CLIState.getNameList(includeNamesFile); + } catch (IOException e) { throw new ParseException(e.getMessage()); } } - if ((optstr = cli.getOptionValue('S')) != null) - { + if ((optstr = cli.getOptionValue('S')) != null) { salt = base16.fromString(optstr); - if (salt == null && !optstr.equals("-")) - { + if (salt == null && !optstr.equals("-")) { System.err.println("error: salt is not valid hexidecimal."); usage(); } } - if ((optstr = cli.getOptionValue('R')) != null) - { + if ((optstr = cli.getOptionValue('R')) != null) { int length = parseInt(optstr, 0); - if (length > 0 && length <= 255) - { + if (length > 0 && length <= 255) { Random random = new Random(); salt = new byte[length]; random.nextBytes(salt); } } - if ((optstr = cli.getOptionValue("iterations")) != null) - { + if ((optstr = cli.getOptionValue("iterations")) != null) { iterations = parseInt(optstr, iterations); - if (iterations < 0 || iterations > 8388607) - { + if (iterations < 0 || iterations > 8388607) { System.err.println("error: iterations value is invalid"); usage(); } } - if ((optstr = cli.getOptionValue("ds-digest")) != null) - { - digest_id = parseInt(optstr, -1); - if (digest_id < 0) - { + if ((optstr = cli.getOptionValue("ds-digest")) != null) { + digestId = parseInt(optstr, -1); + if (digestId < 0) { System.err.println("error: DS digest ID is not a valid identifier"); usage(); } } - if ((optstr = cli.getOptionValue("nsec3paramttl")) != null) - { + if ((optstr = cli.getOptionValue("nsec3paramttl")) != null) { nsec3paramttl = parseInt(optstr, -1); } String[] files = cli.getArgs(); - if (files.length < 1) - { + if (files.length < 1) { System.err.println("error: missing zone file and/or key files"); usage(); } zonefile = files[0]; - if (files.length > 1) - { + if (files.length > 1) { keyFiles = new String[files.length - 1]; System.arraycopy(files, 1, keyFiles, 0, files.length - 1); } } + + /** + * Load a list of DNS names from a file. + * + * @param nameListFile + * the path of a file containing a bare list of DNS names. + * @return a list of {@link org.xbill.DNS.Name} objects. + */ + private static List getNameList(File nameListFile) throws IOException { + try (BufferedReader br = new BufferedReader(new FileReader(nameListFile))) { + List res = new ArrayList<>(); + + String line = null; + while ((line = br.readLine()) != null) { + try { + Name n = Name.fromString(line); + // force the name to be absolute. + // FIXME: we should probably get some fancy logic here to + // detect if the name needs the origin appended, or just the + // root. + if (!n.isAbsolute()) + n = Name.concatenate(n, Name.root); + + res.add(n); + } catch (TextParseException e) { + staticLog.severe("DNS Name parsing error:" + e); + } + } + + return res; + } + } } /** * Verify the generated signatures. - * - * @param zonename - * the origin name of the zone. + * * @param records - * a list of {@link org.xbill.DNS.Record}s. + * a list of {@link org.xbill.DNS.Record}s. * @param keypairs - * a list of keypairs used the sign the zone. + * a list of keypairs used the sign the zone. * @return true if all of the signatures validated. */ - private static boolean verifyZoneSigs(Name zonename, List records, - List keypairs) - { + private static boolean verifyZoneSigs(List records, + List keypairs) { boolean secure = true; DnsSecVerifier verifier = new DnsSecVerifier(); - for (DnsKeyPair pair : keypairs) - { + for (DnsKeyPair pair : keypairs) { verifier.addTrustedKey(pair); } @@ -337,16 +295,16 @@ public class SignZone extends CLBase List rrsets = SignUtils.assembleIntoRRsets(records); - for (RRset rrset : rrsets) - { + for (RRset rrset : rrsets) { // skip unsigned rrsets. - if (!rrset.sigs().hasNext()) continue; + if (rrset.sigs().isEmpty()) { + continue; + } boolean result = verifier.verify(rrset); - if (!result) - { - log.fine("Signatures did not verify for RRset: " + rrset); + if (!result) { + staticLog.fine("Signatures did not verify for RRset: " + rrset); secure = false; } } @@ -356,83 +314,78 @@ public class SignZone extends CLBase /** * Load the key pairs from the key files. - * + * * @param keyfiles - * a string array containing the base names or paths of the keys to - * be loaded. - * @param start_index - * the starting index of keyfiles string array to use. This allows - * us - * to use the straight command line argument array. + * a string array containing the base names or paths of the + * keys to + * be loaded. + * @param startIndex + * the starting index of keyfiles string array to use. This + * allows + * us + * to use the straight command line argument array. * @param inDirectory - * the directory to look in (may be null). + * the directory to look in (may be null). * @return a list of keypair objects. */ - private static List getKeys(String[] keyfiles, int start_index, - File inDirectory) throws IOException - { - if (keyfiles == null) return null; + private static List getKeys(String[] keyfiles, int startIndex, + File inDirectory) throws IOException { + if (keyfiles == null) + return Collections.emptyList(); - int len = keyfiles.length - start_index; - if (len <= 0) return null; + int len = keyfiles.length - startIndex; + if (len <= 0) + return Collections.emptyList(); - ArrayList keys = new ArrayList(len); + ArrayList keys = new ArrayList<>(len); - for (int i = start_index; i < keyfiles.length; i++) - { + for (int i = startIndex; i < keyfiles.length; i++) { DnsKeyPair k = BINDKeyUtils.loadKeyPair(keyfiles[i], inDirectory); - if (k != null) keys.add(k); + if (k != null) { + keys.add(k); + } } return keys; } private static List getKeys(List dnskeyrrs, File inDirectory) - throws IOException - { - List res = new ArrayList(); - for (Record r : dnskeyrrs) - { - if (r.getType() != Type.DNSKEY) continue; + throws IOException { + List res = new ArrayList<>(); + for (Record r : dnskeyrrs) { + if (r.getType() != Type.DNSKEY) + continue; // Construct a public-key-only DnsKeyPair just so we can calculate the // base name. DnsKeyPair pub = new DnsKeyPair((DNSKEYRecord) r); DnsKeyPair pair = BINDKeyUtils.loadKeyPair(BINDKeyUtils.keyFileBase(pub), - inDirectory); - if (pair != null) - { + inDirectory); + if (pair != null) { res.add(pair); } } - - if (res.size() > 0) return res; - return null; + return res; } - private static class KeyFileFilter implements FileFilter - { + private static class KeyFileFilter implements FileFilter { private String prefix; - public KeyFileFilter(Name origin) - { + public KeyFileFilter(Name origin) { prefix = "K" + origin.toString(); } - public boolean accept(File pathname) - { - if (!pathname.isFile()) return false; + public boolean accept(File pathname) { + if (!pathname.isFile()) + return false; String name = pathname.getName(); - if (name.startsWith(prefix) && name.endsWith(".private")) return true; - return false; + return (name.startsWith(prefix) && name.endsWith(".private")); } } private static List findZoneKeys(File inDirectory, Name zonename) - throws IOException - { - if (inDirectory == null) - { + throws IOException { + if (inDirectory == null) { inDirectory = new File("."); } @@ -441,51 +394,48 @@ public class SignZone extends CLBase File[] files = inDirectory.listFiles(filter); // read in all of the records - ArrayList keys = new ArrayList(); - for (int i = 0; i < files.length; i++) - { + ArrayList keys = new ArrayList<>(); + for (int i = 0; i < files.length; i++) { DnsKeyPair p = BINDKeyUtils.loadKeyPair(files[i].getName(), inDirectory); keys.add(p); } - if (keys.size() > 0) return keys; - return null; + return keys; } /** * This is an implementation of a file filter used for finding BIND 9-style * keyset-* files. */ - private static class KeysetFileFilter implements FileFilter - { - public boolean accept(File pathname) - { - if (!pathname.isFile()) return false; + private static class KeysetFileFilter implements FileFilter { + public boolean accept(File pathname) { + if (!pathname.isFile()) + return false; String name = pathname.getName(); - if (name.startsWith("keyset-")) return true; - return false; + return (name.startsWith("keyset-")); } } /** * Load keysets (which contain delegation point security info). - * + * * @param inDirectory - * the directory to look for the keyset files (may be null, in - * which - * case it defaults to looking in the current working directory). + * the directory to look for the keyset files (may be null, + * in + * which + * case it defaults to looking in the current working + * directory). * @param zonename - * the name of the zone we are signing, so we can ignore keysets - * that - * do not belong in the zone. + * the name of the zone we are signing, so we can ignore + * keysets + * that + * do not belong in the zone. * @return a list of {@link org.xbill.DNS.Record}s found in the keyset * files. */ private static List getKeysets(File inDirectory, Name zonename) - throws IOException - { - if (inDirectory == null) - { + throws IOException { + if (inDirectory == null) { inDirectory = new File("."); } @@ -494,19 +444,16 @@ public class SignZone extends CLBase File[] files = inDirectory.listFiles(filter); // read in all of the records - ArrayList keysetRecords = new ArrayList(); - for (int i = 0; i < files.length; i++) - { + ArrayList keysetRecords = new ArrayList<>(); + for (int i = 0; i < files.length; i++) { List l = ZoneUtils.readZoneFile(files[i].getAbsolutePath(), zonename); keysetRecords.addAll(l); } // discard records that do not belong to the zone in question. - for (Iterator i = keysetRecords.iterator(); i.hasNext();) - { + for (Iterator i = keysetRecords.iterator(); i.hasNext();) { Record r = i.next(); - if (!r.getName().subdomain(zonename)) - { + if (!r.getName().subdomain(zonename)) { i.remove(); } } @@ -514,63 +461,25 @@ public class SignZone extends CLBase return keysetRecords; } - /** - * Load a list of DNS names from a file. - * - * @param nameListFile - * the path of a file containing a bare list of DNS names. - * @return a list of {@link org.xbill.DNS.Name} objects. - */ - private static List getNameList(File nameListFile) throws IOException - { - BufferedReader br = new BufferedReader(new FileReader(nameListFile)); - List res = new ArrayList(); - - String line = null; - while ((line = br.readLine()) != null) - { - try - { - Name n = Name.fromString(line); - // force the name to be absolute. - // FIXME: we should probably get some fancy logic here to - // detect if the name needs the origin appended, or just the - // root. - if (!n.isAbsolute()) n = Name.concatenate(n, Name.root); - - res.add(n); - } - catch (TextParseException e) - { - log.severe("DNS Name parsing error:" + e); - } - } - - br.close(); - if (res.size() == 0) return null; - return res; - } - /** * Determine if the given keypairs can be used to sign the zone. - * + * * @param zonename - * the zone origin. + * the zone origin. * @param keypairs - * a list of {@link DnsKeyPair} objects that will be used to sign - * the - * zone. + * a list of {@link DnsKeyPair} objects that will be used to + * sign + * the + * zone. * @return true if the keypairs valid. */ - private static boolean keyPairsValidForZone(Name zonename, List keypairs) - { - if (keypairs == null) return true; // technically true, I guess. + private static boolean keyPairsValidForZone(Name zonename, List keypairs) { + if (keypairs == null) + return true; // technically true, I guess. - for (DnsKeyPair kp : keypairs) - { + for (DnsKeyPair kp : keypairs) { Name keyname = kp.getDNSKEYRecord().getName(); - if (!keyname.equals(zonename)) - { + if (!keyname.equals(zonename)) { return false; } } @@ -578,22 +487,21 @@ public class SignZone extends CLBase return true; } - public void execute() throws Exception - { + public void execute() throws Exception { // Read in the zone List records = ZoneUtils.readZoneFile(state.zonefile, null); - if (records == null || records.size() == 0) - { + if (records == null || records.isEmpty()) { System.err.println("error: empty zone file"); state.usage(); + return; } // calculate the zone name. Name zonename = ZoneUtils.findZoneName(records); - if (zonename == null) - { + if (zonename == null) { System.err.println("error: invalid zone file - no SOA"); state.usage(); + return; } // Load the key pairs. @@ -603,16 +511,14 @@ public class SignZone extends CLBase // If we didn't get any keys on the command line, look at the zone apex for // any public keys. - if (keypairs == null && kskpairs == null) - { + if (keypairs == null && kskpairs == null) { List dnskeys = ZoneUtils.findRRs(records, zonename, Type.DNSKEY); keypairs = getKeys(dnskeys, state.keyDirectory); } // If we *still* don't have any key pairs, look for keys the key directory // that match - if (keypairs == null && kskpairs == null) - { + if (keypairs == null && kskpairs == null) { keypairs = findZoneKeys(state.keyDirectory, zonename); } @@ -620,16 +526,14 @@ public class SignZone extends CLBase // signing key (presumably), presume that the zone signing keys // are just not differentiated and try to figure out which keys // are actually ksks by looking at the SEP flag. - if ((kskpairs == null || kskpairs.size() == 0) && keypairs != null - && keypairs.size() > 1) - { - for (Iterator i = keypairs.iterator(); i.hasNext();) - { + if ((kskpairs == null || kskpairs.isEmpty()) && keypairs != null + && keypairs.size() > 1) { + for (Iterator i = keypairs.iterator(); i.hasNext();) { DnsKeyPair pair = i.next(); DNSKEYRecord kr = pair.getDNSKEYRecord(); - if ((kr.getFlags() & DNSKEYRecord.Flags.SEP_KEY) != 0) - { - if (kskpairs == null) kskpairs = new ArrayList(); + if ((kr.getFlags() & DNSKEYRecord.Flags.SEP_KEY) != 0) { + if (kskpairs == null) + kskpairs = new ArrayList<>(); kskpairs.add(pair); i.remove(); } @@ -638,35 +542,29 @@ public class SignZone extends CLBase // If there are no ZSKs defined at this point (yet there are KSKs // provided), all KSKs will be treated as ZSKs, as well. - if (keypairs == null || keypairs.size() == 0) - { + if (keypairs == null || keypairs.isEmpty()) { keypairs = kskpairs; } // If there *still* aren't any ZSKs defined, bail. - if (keypairs == null || keypairs.size() == 0) - { + if (keypairs == null || keypairs.isEmpty()) { System.err.println("No zone signing keys could be determined."); state.usage(); + return; } // default the output file, if not set. - if (state.outputfile == null && !state.zonefile.equals("-")) - { - if (zonename.isAbsolute()) - { + if (state.outputfile == null && !state.zonefile.equals("-")) { + if (zonename.isAbsolute()) { state.outputfile = zonename + "signed"; - } - else - { + } else { state.outputfile = zonename + ".signed"; } } // Verify that the keys can be in the zone. if (!keyPairsValidForZone(zonename, keypairs) - || !keyPairsValidForZone(zonename, kskpairs)) - { + || !keyPairsValidForZone(zonename, kskpairs)) { System.err.println("error: specified keypairs are not valid for the zone."); state.usage(); } @@ -674,79 +572,63 @@ public class SignZone extends CLBase // We force the signing keys to be in the zone by just appending // them to the zone here. Currently JCEDnsSecSigner.signZone // removes duplicate records. - if (kskpairs != null) - { - for (DnsKeyPair pair : kskpairs) - { + if (kskpairs != null) { + for (DnsKeyPair pair : kskpairs) { records.add(pair.getDNSKEYRecord()); } } - if (keypairs != null) - { - for (DnsKeyPair pair : keypairs) - { + if (keypairs != null) { + for (DnsKeyPair pair : keypairs) { records.add(pair.getDNSKEYRecord()); } } // read in the keysets, if any. List keysetrecs = getKeysets(state.keysetDirectory, zonename); - if (keysetrecs != null) - { + if (keysetrecs != null) { records.addAll(keysetrecs); } JCEDnsSecSigner signer = new JCEDnsSecSigner(state.verboseSigning); // Sign the zone. - List signed_records; + List signedRecords; - if (state.useNsec3) - { - signed_records = signer.signZoneNSEC3(zonename, records, kskpairs, keypairs, - state.start, state.expire, - state.fullySignKeyset, state.useOptOut, - state.includeNames, state.salt, - state.iterations, state.digest_id, - state.nsec3paramttl); - } - else - { - signed_records = signer.signZone(zonename, records, kskpairs, keypairs, - state.start, state.expire, state.fullySignKeyset, - state.digest_id); + if (state.useNsec3) { + signedRecords = signer.signZoneNSEC3(zonename, records, kskpairs, keypairs, + state.start, state.expire, + state.fullySignKeyset, state.useOptOut, + state.includeNames, state.salt, + state.iterations, state.digestId, + state.nsec3paramttl); + } else { + signedRecords = signer.signZone(zonename, records, kskpairs, keypairs, + state.start, state.expire, state.fullySignKeyset, + state.digestId); } // write out the signed zone - ZoneUtils.writeZoneFile(signed_records, state.outputfile); + ZoneUtils.writeZoneFile(signedRecords, state.outputfile); - if (state.verifySigs) - { + if (state.verifySigs) { // FIXME: ugh. - if (kskpairs != null) - { + if (kskpairs != null) { keypairs.addAll(kskpairs); } log.fine("verifying generated signatures"); - boolean res = verifyZoneSigs(zonename, signed_records, keypairs); + boolean res = verifyZoneSigs(signedRecords, keypairs); - if (res) - { + if (res) { System.out.println("Generated signatures verified"); - // log.info("Generated signatures verified"); - } - else - { + } else { System.out.println("Generated signatures did not verify."); - // log.warn("Generated signatures did not verify."); } } } - public static void main(String[] args) - { + public static void main(String[] args) { SignZone tool = new SignZone(); tool.state = new CLIState(); diff --git a/src/main/java/com/verisignlabs/dnssec/cl/VerifyZone.java b/src/main/java/com/verisignlabs/dnssec/cl/VerifyZone.java index 01394a1..40ece56 100644 --- a/src/main/java/com/verisignlabs/dnssec/cl/VerifyZone.java +++ b/src/main/java/com/verisignlabs/dnssec/cl/VerifyZone.java @@ -1,4 +1,4 @@ -// Copyright (C) 2011 VeriSign, Inc. +// Copyright (C) 2011, 2022 VeriSign, Inc. // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public @@ -20,8 +20,8 @@ package com.verisignlabs.dnssec.cl; import java.util.List; import org.apache.commons.cli.CommandLine; -import org.apache.commons.cli.OptionBuilder; import org.apache.commons.cli.Options; +import org.apache.commons.cli.Option; import org.xbill.DNS.Record; import com.verisignlabs.dnssec.security.ZoneUtils; @@ -32,106 +32,80 @@ import com.verisignlabs.dnssec.security.ZoneVerifier; * * @author David Blacka */ -public class VerifyZone extends CLBase -{ - +public class VerifyZone extends CLBase { + private CLIState state; - + /** * This is a small inner class used to hold all of the command line option * state. */ - protected static class CLIState extends CLIStateBase - { - public String zonefile = null; - public String[] keyfiles = null; - public int startfudge = 0; - public int expirefudge = 0; - public boolean ignoreTime = false; - public boolean ignoreDups = false; + protected static class CLIState extends CLIStateBase { + public String zonefile = null; + public String[] keyfiles = null; + public int startfudge = 0; + public int expirefudge = 0; + public boolean ignoreTime = false; + public boolean ignoreDups = false; - public CLIState() - { + public CLIState() { super("jdnssec-verifyzone [..options..] zonefile"); } - protected void setupOptions(Options opts) - { - OptionBuilder.hasOptionalArg(); - OptionBuilder.withLongOpt("sig-start-fudge"); - OptionBuilder.withArgName("seconds"); - OptionBuilder.withDescription("'fudge' RRSIG inception times by 'seconds' seconds."); - opts.addOption(OptionBuilder.create('S')); - - OptionBuilder.hasOptionalArg(); - OptionBuilder.withLongOpt("sig-expire-fudge"); - OptionBuilder.withArgName("seconds"); - OptionBuilder.withDescription("'fudge' RRSIG expiration times by 'seconds' seconds."); - opts.addOption(OptionBuilder.create('E')); - - OptionBuilder.withLongOpt("ignore-time"); - OptionBuilder.withDescription("Ignore RRSIG inception and expiration time errors."); - opts.addOption(OptionBuilder.create()); - - OptionBuilder.withLongOpt("ignore-duplicate-rrs"); - OptionBuilder.withDescription("Ignore duplicate record errors."); - opts.addOption(OptionBuilder.create()); + @Override + protected void setupOptions(Options opts) { + opts.addOption(Option.builder("S").optionalArg(true).argName("seconds").longOpt("sig-start-fudge") + .desc("'fudge' RRSIG inception ties by 'seconds'").build()); + opts.addOption(Option.builder("E").optionalArg(true).argName("seconds").longOpt("sig-expire-fudge") + .desc("'fudge' RRSIG expiration times by 'seconds'").build()); + opts.addOption( + Option.builder().longOpt("ignore-time").desc("Ignore RRSIG inception and expiration time errors.").build()); + opts.addOption(Option.builder().longOpt("ignore-duplicate-rrs").desc("Ignore duplicate record errors.").build()); } - - protected void processOptions(CommandLine cli) - { - if (cli.hasOption("ignore-time")) - { + + @Override + protected void processOptions(CommandLine cli) { + if (cli.hasOption("ignore-time")) { ignoreTime = true; } - if (cli.hasOption("ignore-duplicate-rrs")) - { + if (cli.hasOption("ignore-duplicate-rrs")) { ignoreDups = true; } String optstr = null; - if ((optstr = cli.getOptionValue('S')) != null) - { + if ((optstr = cli.getOptionValue('S')) != null) { startfudge = parseInt(optstr, 0); } - if ((optstr = cli.getOptionValue('E')) != null) - { + if ((optstr = cli.getOptionValue('E')) != null) { expirefudge = parseInt(optstr, 0); } String[] optstrs = null; - if ((optstrs = cli.getOptionValues('A')) != null) - { - for (int i = 0; i < optstrs.length; i++) - { + if ((optstrs = cli.getOptionValues('A')) != null) { + for (int i = 0; i < optstrs.length; i++) { addArgAlias(optstrs[i]); } } - String[] cl_args = cli.getArgs(); + String[] args = cli.getArgs(); - if (cl_args.length < 1) - { + if (args.length < 1) { System.err.println("error: missing zone file"); usage(); } - zonefile = cl_args[0]; + zonefile = args[0]; - if (cl_args.length >= 2) - { - keyfiles = new String[cl_args.length - 1]; - System.arraycopy(cl_args, 1, keyfiles, 0, keyfiles.length); + if (args.length >= 2) { + keyfiles = new String[args.length - 1]; + System.arraycopy(args, 1, keyfiles, 0, keyfiles.length); } } } - - - public void execute() throws Exception - { + public void execute() throws Exception { ZoneVerifier zoneverifier = new ZoneVerifier(); zoneverifier.getVerifier().setStartFudge(state.startfudge); zoneverifier.getVerifier().setExpireFudge(state.expirefudge); @@ -144,23 +118,19 @@ public class VerifyZone extends CLBase int errors = zoneverifier.verifyZone(records); log.fine("completed verification process."); - if (errors > 0) - { + if (errors > 0) { System.out.println("zone did not verify."); System.exit(1); - } - else - { + } else { System.out.println("zone verified."); System.exit(0); } } - public static void main(String[] args) - { + public static void main(String[] args) { VerifyZone tool = new VerifyZone(); tool.state = new CLIState(); - + tool.run(tool.state, args); } } diff --git a/src/main/java/com/verisignlabs/dnssec/cl/ZoneFormat.java b/src/main/java/com/verisignlabs/dnssec/cl/ZoneFormat.java index 887df26..96ff79e 100644 --- a/src/main/java/com/verisignlabs/dnssec/cl/ZoneFormat.java +++ b/src/main/java/com/verisignlabs/dnssec/cl/ZoneFormat.java @@ -1,4 +1,4 @@ -// Copyright (C) 2011 VeriSign, Inc. +// Copyright (C) 2011, 2022 VeriSign, Inc. // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public @@ -23,7 +23,6 @@ import java.util.ArrayList; import java.util.Collections; import java.util.HashMap; import java.util.List; -import java.util.ListIterator; import org.apache.commons.cli.CommandLine; import org.apache.commons.cli.Options; @@ -43,168 +42,150 @@ import com.verisignlabs.dnssec.security.RecordComparator; * This class forms the command line implementation of a zone file normalizer. * That is, a tool to rewrite zones in a consistent, comparable format. * - * @author David Blacka (original) - * @author $Author: davidb $ - * @version $Revision: 2218 $ + * @author David Blacka */ -public class ZoneFormat extends CLBase -{ +public class ZoneFormat extends CLBase { private CLIState state; /** * This is a small inner class used to hold all of the command line option * state. */ - protected static class CLIState extends CLIStateBase - { - public String file; + protected static class CLIState extends CLIStateBase { + public String file; public boolean assignNSEC3; - public CLIState() - { + public CLIState() { super("jdnssec-zoneformat [..options..] zonefile"); } - protected void setupOptions(Options opts) - { + @Override + protected void setupOptions(Options opts) { opts.addOption("N", "nsec3", false, - "attempt to determine the original ownernames for NSEC3 RRs."); + "attempt to determine the original ownernames for NSEC3 RRs."); } - protected void processOptions(CommandLine cli) throws ParseException - { - if (cli.hasOption('N')) assignNSEC3 = true; + @Override + protected void processOptions(CommandLine cli) throws ParseException { + if (cli.hasOption('N')) + assignNSEC3 = true; - String[] cl_args = cli.getArgs(); + String[] args = cli.getArgs(); - if (cl_args.length < 1) - { + if (args.length < 1) { System.err.println("error: must specify a zone file"); usage(); } - file = cl_args[0]; + file = args[0]; } } - private static List readZoneFile(String filename) throws IOException - { - Master master = new Master(filename); + private static List readZoneFile(String filename) throws IOException { + try (Master master = new Master(filename)) { + List res = new ArrayList<>(); + Record r = null; - List res = new ArrayList(); - Record r = null; + while ((r = master.nextRecord()) != null) { + // Normalize each record by round-tripping it through canonical wire line + // format. Mostly this just lowercases names that are subject to it. + byte[] wire = r.toWireCanonical(); + Record canonRec = Record.fromWire(wire, Section.ANSWER); + res.add(canonRec); + } - while ((r = master.nextRecord()) != null) - { - // Normalize each record by round-tripping it through canonical wire line - // format. Mostly this just lowercases names that are subject to it. - byte[] wire = r.toWireCanonical(); - Record canon_record = Record.fromWire(wire, Section.ANSWER); - res.add(canon_record); + return res; } - - return res; } - private static void formatZone(List zone) - { - // Put the zone into a consistent (name and RR type) order. - RecordComparator cmp = new RecordComparator(); + private static void formatZone(List zone) { - Collections.sort(zone, cmp); - for (Record r : zone) - { + for (Record r : zone) { System.out.println(r.toString()); } } private static void determineNSEC3Owners(List zone) - throws NoSuchAlgorithmException - { - // Put the zone into a consistent (name and RR type) order. - Collections.sort(zone, new RecordComparator()); + throws NoSuchAlgorithmException { // first, find the NSEC3PARAM record -- this is an inefficient linear // search, although it should be near the head of the list. NSEC3PARAMRecord nsec3param = null; - HashMap map = new HashMap(); + HashMap map = new HashMap<>(); base32 b32 = new base32(base32.Alphabet.BASE32HEX, false, true); Name zonename = null; - for (Record r : zone) - { - if (r.getType() == Type.SOA) - { + for (Record r : zone) { + if (r.getType() == Type.SOA) { zonename = r.getName(); continue; } - if (r.getType() == Type.NSEC3PARAM) - { + if (r.getType() == Type.NSEC3PARAM) { nsec3param = (NSEC3PARAMRecord) r; break; } } // If we couldn't determine a zone name, we have an issue. - if (zonename == null) return; - // If there wasn't one, we have nothing to do. - if (nsec3param == null) return; + if (zonename == null || nsec3param == null) { + formatZone(zone); + return; + } // Next pass, calculate a mapping between ownernames and hashnames - Name last_name = null; - for (Record r : zone) - { - if (r.getName().equals(last_name)) continue; - if (r.getType() == Type.NSEC3) continue; + Name lastName = null; + for (Record r : zone) { + if (r.getName().equals(lastName)) + continue; + if (r.getType() == Type.NSEC3) + continue; Name n = r.getName(); byte[] hash = nsec3param.hashName(n); String hashname = b32.toString(hash); map.put(hashname, n.toString().toLowerCase()); - last_name = n; + lastName = n; // inefficiently create hashes for the possible ancestor ENTs - for (int i = zonename.labels() + 1; i < n.labels(); ++i) - { + for (int i = zonename.labels() + 1; i < n.labels(); ++i) { Name parent = new Name(n, n.labels() - i); - byte[] parent_hash = nsec3param.hashName(parent); - String parent_hashname = b32.toString(parent_hash); - if (!map.containsKey(parent_hashname)) - { - map.put(parent_hashname, parent.toString().toLowerCase()); + byte[] parentHash = nsec3param.hashName(parent); + String parentHashName = b32.toString(parentHash); + if (!map.containsKey(parentHashName)) { + map.put(parentHashName, parent.toString().toLowerCase()); } } } - // Final pass, assign the names if we can - for (ListIterator i = zone.listIterator(); i.hasNext();) - { - Record r = i.next(); - if (r.getType() != Type.NSEC3) continue; + // Final pass, output the zone with added comments for the NSEC3 records + for (Record r : zone) { + if (r.getType() != Type.NSEC3) { + System.out.println(r.toString()); + continue; + } + NSEC3Record nsec3 = (NSEC3Record) r; String hashname = nsec3.getName().getLabelString(0).toLowerCase(); - String ownername = (String) map.get(hashname); - - NSEC3Record new_nsec3 = new NSEC3Record(nsec3.getName(), nsec3.getDClass(), - nsec3.getTTL(), nsec3.getHashAlgorithm(), - nsec3.getFlags(), nsec3.getIterations(), - nsec3.getSalt(), nsec3.getNext(), - nsec3.getTypes(), ownername); - i.set(new_nsec3); + String ownername = map.get(hashname); + System.out.println(r.toString() + " ; " + ownername); } } - public void execute() throws IOException, NoSuchAlgorithmException - { + public void execute() throws IOException, NoSuchAlgorithmException { List z = readZoneFile(state.file); - if (state.assignNSEC3) determineNSEC3Owners(z); - formatZone(z); + // Put the zone into a consistent (name and RR type) order. + Collections.sort(z, new RecordComparator()); + + if (state.assignNSEC3) { + determineNSEC3Owners(z); + } else { + formatZone(z); + } } - public static void main(String[] args) - { + public static void main(String[] args) { ZoneFormat tool = new ZoneFormat(); tool.state = new CLIState(); diff --git a/src/main/java/com/verisignlabs/dnssec/security/BINDKeyUtils.java b/src/main/java/com/verisignlabs/dnssec/security/BINDKeyUtils.java index 2551ba6..450f8d4 100644 --- a/src/main/java/com/verisignlabs/dnssec/security/BINDKeyUtils.java +++ b/src/main/java/com/verisignlabs/dnssec/security/BINDKeyUtils.java @@ -1,6 +1,4 @@ -// $Id$ -// -// Copyright (C) 2001-2003 VeriSign, Inc. +// Copyright (C) 2001-2003, 2022 VeriSign, Inc. // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public @@ -28,7 +26,6 @@ import java.io.PrintWriter; import java.security.NoSuchAlgorithmException; import java.security.PrivateKey; import java.security.PublicKey; -import java.text.NumberFormat; import org.xbill.DNS.DNSKEYRecord; import org.xbill.DNS.Master; @@ -41,62 +38,35 @@ import org.xbill.DNS.utils.base64; /** * This class contains a series of static methods used for manipulating BIND * 9.x.x-style DNSSEC key files. - * + * * In this class, the "base" key path or name is the file name without the * trailing ".key" or ".private". - * - * @author David Blacka (original) - * @author $Author$ - * @version $Revision$ + * + * @author David Blacka */ -public class BINDKeyUtils -{ - // formatters used to generated the BIND key file names - private static NumberFormat mAlgNumberFormatter; - private static NumberFormat mKeyIdNumberFormatter; +public class BINDKeyUtils { + + private BINDKeyUtils() { } /** * Calculate the BIND9 key file base name (i.e., without the ".key" or * ".private" extensions) */ - private static String getKeyFileBase(Name signer, int algorithm, int keyid) - { - if (mAlgNumberFormatter == null) - { - mAlgNumberFormatter = NumberFormat.getNumberInstance(); - mAlgNumberFormatter.setMaximumIntegerDigits(3); - mAlgNumberFormatter.setMinimumIntegerDigits(3); - } - if (mKeyIdNumberFormatter == null) - { - mKeyIdNumberFormatter = NumberFormat.getNumberInstance(); - mKeyIdNumberFormatter.setMaximumIntegerDigits(5); - mKeyIdNumberFormatter.setMinimumIntegerDigits(5); - mKeyIdNumberFormatter.setGroupingUsed(false); - - } - + private static String getKeyFileBase(Name signer, int algorithm, int keyid) { keyid &= 0xFFFF; - - String fn = "K" + signer + "+" + mAlgNumberFormatter.format(algorithm) - + "+" + mKeyIdNumberFormatter.format(keyid); - - return fn; + return String.format("K%1$s+%2$03d+%3$05d", signer, algorithm, keyid); } /** Reads in the DNSKEYRecord from the public key file */ private static DNSKEYRecord loadPublicKeyFile(File publicKeyFile) - throws IOException - { + throws IOException { Master m = new Master(publicKeyFile.getAbsolutePath(), null, 600); Record r; DNSKEYRecord result = null; - while ((r = m.nextRecord()) != null) - { - if (r.getType() == Type.DNSKEY) - { + while ((r = m.nextRecord()) != null) { + if (r.getType() == Type.DNSKEY) { result = (DNSKEYRecord) r; } } @@ -106,31 +76,26 @@ public class BINDKeyUtils /** Reads in the private key verbatim from the private key file */ private static String loadPrivateKeyFile(File privateKeyFile) - throws IOException - { - BufferedReader in = new BufferedReader(new FileReader(privateKeyFile)); - StringBuffer key_buf = new StringBuffer(); + throws IOException { + try (BufferedReader in = new BufferedReader(new FileReader(privateKeyFile))) { + StringBuilder keybuf = new StringBuilder(); + String line; - String line; - - while ((line = in.readLine()) != null) - { - key_buf.append(line); - key_buf.append('\n'); + while ((line = in.readLine()) != null) { + keybuf.append(line); + keybuf.append('\n'); + } + return keybuf.toString().trim(); } - in.close(); - - return key_buf.toString().trim(); } /** * Given an actual path for one of the key files, return the base name */ - private static String fixKeyFileBasePath(String basePath) - { - if (basePath == null) throw new IllegalArgumentException(); - if (basePath.endsWith(".key") || basePath.endsWith(".private")) - { + private static String fixKeyFileBasePath(String basePath) { + if (basePath == null) + throw new IllegalArgumentException(); + if (basePath.endsWith(".key") || basePath.endsWith(".private")) { basePath = basePath.substring(0, basePath.lastIndexOf(".")); } @@ -140,22 +105,21 @@ public class BINDKeyUtils /** * Given the information necessary to construct the path to a BIND9 generated * key pair, load the key pair. - * + * * @param signer - * the DNS name of the key. + * the DNS name of the key. * @param algorithm - * the DNSSEC algorithm of the key. + * the DNSSEC algorithm of the key. * @param keyid - * the DNSSEC key footprint. + * the DNSSEC key footprint. * @param inDirectory - * the directory to look for the files (may be null). + * the directory to look for the files (may be null). * @return the loaded key pair. * @throws IOException - * if there was a problem reading the BIND9 files. + * if there was a problem reading the BIND9 files. */ public static DnsKeyPair loadKeyPair(Name signer, int algorithm, int keyid, - File inDirectory) throws IOException - { + File inDirectory) throws IOException { String keyFileBase = getKeyFileBase(signer, algorithm, keyid); return loadKeyPair(keyFileBase, inDirectory); @@ -163,19 +127,20 @@ public class BINDKeyUtils /** * Given a base path to a BIND9 key pair, load the key pair. - * + * * @param keyFileBasePath - * the base filename (or real filename for either the public or - * private key) of the key. + * the base filename (or real filename for either the + * public or + * private key) of the key. * @param inDirectory - * the directory to look in, if the keyFileBasePath is relative. + * the directory to look in, if the keyFileBasePath is + * relative. * @return the loaded key pair. * @throws IOException - * if there was a problem reading the files + * if there was a problem reading the files */ public static DnsKeyPair loadKeyPair(String keyFileBasePath, File inDirectory) - throws IOException - { + throws IOException { keyFileBasePath = fixKeyFileBasePath(keyFileBasePath); // FIXME: should we throw the IOException when one of the files // cannot be found, or just when both cannot be found? @@ -196,18 +161,19 @@ public class BINDKeyUtils /** * Given a base path to a BIND9 key pair, load the public part (only) of the * key pair - * + * * @param keyFileBasePath - * the base or real path to the public part of a key pair. + * the base or real path to the public part of a key + * pair. * @param inDirectory - * the directory to look in if the path is relative (may be null). + * the directory to look in if the path is relative (may + * be null). * @return a {@link DnsKeyPair} containing just the public key information. * @throws IOException - * if there was a problem reading the public key file. + * if there was a problem reading the public key file. */ public static DnsKeyPair loadKey(String keyFileBasePath, File inDirectory) - throws IOException - { + throws IOException { keyFileBasePath = fixKeyFileBasePath(keyFileBasePath); File publicKeyFile = new File(inDirectory, keyFileBasePath + ".key"); @@ -223,57 +189,56 @@ public class BINDKeyUtils * Load a BIND keyset file. The BIND 9 dnssec tools typically call these files * "keyset-[signer]." where [signer] is the DNS owner name of the key. The * keyset may be signed, but doesn't have to be. - * + * * @param keysetFileName - * the name of the keyset file. + * the name of the keyset file. * @param inDirectory - * the directory to look in if the path is relative (may be null, - * defaults to the current working directory). + * the directory to look in if the path is relative (may + * be null, + * defaults to the current working directory). * @return a RRset contain the KEY records and any associated SIG records. * @throws IOException - * if there was a problem reading the keyset file. + * if there was a problem reading the keyset file. */ public static RRset loadKeySet(String keysetFileName, File inDirectory) - throws IOException - { + throws IOException { File keysetFile = new File(inDirectory, keysetFileName); - Master m = new Master(keysetFile.getAbsolutePath()); + try (Master m = new Master(keysetFile.getAbsolutePath())) { + Record r; + RRset keyset = new RRset(); + while ((r = m.nextRecord()) != null) { + keyset.addRR(r); + } - Record r; - RRset keyset = new RRset(); - while ((r = m.nextRecord()) != null) - { - keyset.addRR(r); + return keyset; } - - return keyset; } /** * Calculate the key file base for this key pair. - * + * * @param pair - * the {@link DnsKeyPair} to work from. It only needs a public key. + * the {@link DnsKeyPair} to work from. It only needs a public key. * @return the base name of the key files. */ - public static String keyFileBase(DnsKeyPair pair) - { + public static String keyFileBase(DnsKeyPair pair) { DNSKEYRecord keyrec = pair.getDNSKEYRecord(); - if (keyrec == null) return null; + if (keyrec == null) + return null; return getKeyFileBase(keyrec.getName(), keyrec.getAlgorithm(), - keyrec.getFootprint()); + keyrec.getFootprint()); } /** * @return a {@link java.io.File} object representing the BIND9 public key * file. */ - public static File getPublicKeyFile(DnsKeyPair pair, File inDirectory) - { + public static File getPublicKeyFile(DnsKeyPair pair, File inDirectory) { String keyfilebase = keyFileBase(pair); - if (keyfilebase == null) return null; + if (keyfilebase == null) + return null; return new File(inDirectory, keyfilebase + ".key"); } @@ -282,10 +247,10 @@ public class BINDKeyUtils * @return a {@link java.io.File} object representing the BIND9 private key * file */ - public static File getPrivateKeyFile(DnsKeyPair pair, File inDirectory) - { + public static File getPrivateKeyFile(DnsKeyPair pair, File inDirectory) { String keyfilebase = keyFileBase(pair); - if (keyfilebase == null) return null; + if (keyfilebase == null) + return null; return new File(inDirectory, keyfilebase + ".private"); } @@ -293,28 +258,21 @@ public class BINDKeyUtils /** * Given a the contents of a BIND9 private key file, convert it into a native * {@link java.security.PrivateKey} object. - * + * * @param privateKeyString - * the contents of a BIND9 key file in string form. + * the contents of a BIND9 key file in string form. * @return a {@link java.security.PrivateKey} */ - public static PrivateKey convertPrivateKeyString(String privateKeyString) - { - if (privateKeyString == null) return null; + public static PrivateKey convertPrivateKeyString(String privateKeyString) { + if (privateKeyString == null) + return null; // FIXME: should this swallow exceptions or actually propagate // them? - try - { + try { DnsKeyConverter conv = new DnsKeyConverter(); return conv.parsePrivateKeyString(privateKeyString); - } - catch (IOException e) - { - e.printStackTrace(); - } - catch (NoSuchAlgorithmException e) - { + } catch (IOException|NoSuchAlgorithmException e) { e.printStackTrace(); } @@ -324,22 +282,18 @@ public class BINDKeyUtils /** * Given a native private key, convert it into a BIND9 private key file * format. - * + * * @param priv - * the private key to convert. + * the private key to convert. * @param pub - * the private key's corresponding public key. Some algorithms - * require information from both. + * the private key's corresponding public key. Some algorithms + * require information from both. * @return a string containing the contents of a BIND9 private key file. */ - public static String convertPrivateKey(PrivateKey priv, PublicKey pub, int alg) - { - if (priv != null) - { + public static String convertPrivateKey(PrivateKey priv, PublicKey pub, int alg) { + if (priv != null) { DnsKeyConverter keyconv = new DnsKeyConverter(); - String priv_string = keyconv.generatePrivateKeyString(priv, pub, alg); - - return priv_string; + return keyconv.generatePrivateKeyString(priv, pub, alg); } return null; @@ -350,13 +304,14 @@ public class BINDKeyUtils * routines need. Currently, the DNSJAVA package uses a multiline mode for its * record formatting. The BIND9 tools require everything on a single line. */ - private static String DNSKEYtoString(DNSKEYRecord rec) - { - StringBuffer buf = new StringBuffer(); + private static String DNSKEYtoString(DNSKEYRecord rec) { + StringBuilder buf = new StringBuilder(); buf.append(rec.getName()); - buf.append(" "); - buf.append(rec.getTTL()); + if (rec.getTTL() > 0) { + buf.append(" "); + buf.append(rec.getTTL()); + } buf.append(" IN DNSKEY "); buf.append(rec.getFlags() & 0xFFFF); buf.append(" "); @@ -371,30 +326,30 @@ public class BINDKeyUtils /** * This routine will write out the BIND9 dnssec-* tool compatible files. - * + * * @param baseFileName - * use this base file name. If null, the standard BIND9 base file - * name will be computed. + * use this base file name. If null, the standard BIND9 base + * file + * name will be computed. * @param pair - * the keypair in question. + * the keypair in question. * @param inDirectory - * the directory to write to (may be null). + * the directory to write to (may be null). * @throws IOException - * if there is a problem writing the files. + * if there is a problem writing the files. */ public static void writeKeyFiles(String baseFileName, DnsKeyPair pair, - File inDirectory) throws IOException - { + File inDirectory) throws IOException { DNSKEYRecord pub = pair.getDNSKEYRecord(); String priv = pair.getPrivateKeyString(); - if (priv == null) - { + if (priv == null) { priv = convertPrivateKey(pair.getPrivate(), pair.getPublic(), - pair.getDNSKEYAlgorithm()); + pair.getDNSKEYAlgorithm()); } - if (pub == null || priv == null) return; + if (pub == null || priv == null) + return; // Write the public key file File pubkeyfile = new File(inDirectory, baseFileName + ".key"); @@ -413,15 +368,14 @@ public class BINDKeyUtils /** * This routine will write out the BIND9 dnssec-* tool compatible files to the * standard file names. - * + * * @param pair - * the key pair in question. + * the key pair in question. * @param inDirectory - * the directory to write to (may be null). + * the directory to write to (may be null). */ public static void writeKeyFiles(DnsKeyPair pair, File inDirectory) - throws IOException - { + throws IOException { String base = keyFileBase(pair); writeKeyFiles(base, pair, inDirectory); } diff --git a/src/main/java/com/verisignlabs/dnssec/security/ByteArrayComparator.java b/src/main/java/com/verisignlabs/dnssec/security/ByteArrayComparator.java index f8d5a1d..84082f1 100644 --- a/src/main/java/com/verisignlabs/dnssec/security/ByteArrayComparator.java +++ b/src/main/java/com/verisignlabs/dnssec/security/ByteArrayComparator.java @@ -1,6 +1,4 @@ -// $Id$ -// -// Copyright (C) 2001-2003 VeriSign, Inc. +// Copyright (C) 2001-2003, 2022 VeriSign, Inc. // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public @@ -26,34 +24,25 @@ import java.util.logging.Logger; * useful for comparing RDATA portions of DNS records in doing DNSSEC canonical * ordering. * - * @author David Blacka (original) - * @author $Author$ - * @version $Revision$ + * @author David Blacka */ -public class ByteArrayComparator implements Comparator -{ - private int mOffset = 0; - private boolean mDebug = false; +public class ByteArrayComparator implements Comparator { + private int mOffset = 0; + private boolean mDebug = false; private Logger log; - public ByteArrayComparator() - { + public ByteArrayComparator() { } - public ByteArrayComparator(int offset, boolean debug) - { + public ByteArrayComparator(int offset, boolean debug) { mOffset = offset; mDebug = debug; } - public int compare(byte[] b1, byte[] b2) - { - for (int i = mOffset; i < b1.length && i < b2.length; i++) - { - if (b1[i] != b2[i]) - { - if (mDebug) - { + public int compare(byte[] b1, byte[] b2) { + for (int i = mOffset; i < b1.length && i < b2.length; i++) { + if (b1[i] != b2[i]) { + if (mDebug) { log.info("offset " + i + " differs (this is " + (i - mOffset) + " bytes in from our offset.)"); } diff --git a/src/main/java/com/verisignlabs/dnssec/security/DnsKeyAlgorithm.java b/src/main/java/com/verisignlabs/dnssec/security/DnsKeyAlgorithm.java index 17e8c86..dc9a971 100644 --- a/src/main/java/com/verisignlabs/dnssec/security/DnsKeyAlgorithm.java +++ b/src/main/java/com/verisignlabs/dnssec/security/DnsKeyAlgorithm.java @@ -1,7 +1,5 @@ /* - * $Id$ - * - * Copyright (c) 2006 VeriSign. All rights reserved. + * Copyright (c) 2006, 2022 Verisign. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: @@ -30,8 +28,22 @@ package com.verisignlabs.dnssec.security; import java.math.BigInteger; -import java.security.*; -import java.security.spec.*; +import java.security.AlgorithmParameters; +import java.security.InvalidAlgorithmParameterException; +import java.security.KeyPair; +import java.security.KeyPairGenerator; +import java.security.NoSuchAlgorithmException; +import java.security.Provider; +import java.security.SecureRandom; +import java.security.Security; +import java.security.Signature; +import java.security.spec.ECFieldFp; +import java.security.spec.ECGenParameterSpec; +import java.security.spec.ECParameterSpec; +import java.security.spec.ECPoint; +import java.security.spec.EllipticCurve; +import java.security.spec.InvalidParameterSpecException; +import java.security.spec.RSAKeyGenParameterSpec; import java.util.Arrays; import java.util.HashMap; import java.util.Set; @@ -39,10 +51,11 @@ import java.util.logging.Logger; import org.xbill.DNS.DNSSEC; +import net.i2p.crypto.eddsa.spec.EdDSANamedCurveTable; // for now, we need to import the EdDSA parameter spec classes // because they have no generic form in java.security.spec.* // sadly, this will currently fail if you don't have the lib. -import net.i2p.crypto.eddsa.spec.*; +import net.i2p.crypto.eddsa.spec.EdDSAParameterSpec; /** * This class handles translating DNS signing algorithm identifiers into various @@ -53,57 +66,48 @@ import net.i2p.crypto.eddsa.spec.*; * aliasing -- that is, defining a new algorithm identifier to be equivalent to * an existing identifier. * - * @author David Blacka (orig) - * @author $Author: davidb $ (latest) - * @version $Revision: 2098 $ + * @author David Blacka */ -public class DnsKeyAlgorithm -{ +public class DnsKeyAlgorithm { // Our base algorithm numbers. This is a normalization of the DNSSEC // algorithms (which are really signature algorithms). Thus RSASHA1, // RSASHA256, etc. all boil down to 'RSA' here. - public static final int UNKNOWN = -1; - public static final int RSA = 1; - public static final int DH = 2; - public static final int DSA = 3; - public static final int ECC_GOST = 4; - public static final int ECDSA = 5; - public static final int EDDSA = 6; + public static final int UNKNOWN = -1; + public static final int RSA = 1; + public static final int DH = 2; + public static final int DSA = 3; + public static final int ECC_GOST = 4; + public static final int ECDSA = 5; + public static final int EDDSA = 6; - private static class AlgEntry - { - public int dnssecAlgorithm; + private static class AlgEntry { + public int dnssecAlgorithm; public String sigName; - public int baseType; + public int baseType; - public AlgEntry(int algorithm, String sigName, int baseType) - { + public AlgEntry(int algorithm, String sigName, int baseType) { this.dnssecAlgorithm = algorithm; - this.sigName = sigName; - this.baseType = baseType; + this.sigName = sigName; + this.baseType = baseType; } } - private static class ECAlgEntry extends AlgEntry - { - public ECParameterSpec ec_spec; + private static class ECAlgEntry extends AlgEntry { + public ECParameterSpec ecSpec; - public ECAlgEntry(int algorithm, String sigName, int baseType, ECParameterSpec spec) - { + public ECAlgEntry(int algorithm, String sigName, int baseType, ECParameterSpec spec) { super(algorithm, sigName, baseType); - this.ec_spec = spec; + this.ecSpec = spec; } } - private static class EdAlgEntry extends AlgEntry - { - public EdDSAParameterSpec ed_spec; + private static class EdAlgEntry extends AlgEntry { + public EdDSAParameterSpec edSpec; - public EdAlgEntry(int algorithm, String sigName, int baseType, EdDSAParameterSpec spec) - { + public EdAlgEntry(int algorithm, String sigName, int baseType, EdDSAParameterSpec spec) { super(algorithm, sigName, baseType); - this.ed_spec = spec; + this.edSpec = spec; } } @@ -111,7 +115,7 @@ public class DnsKeyAlgorithm * This is a mapping of algorithm identifier to Entry. The Entry contains the * data needed to map the algorithm to the various crypto implementations. */ - private HashMap mAlgorithmMap; + private HashMap mAlgorithmMap; /** * This is a mapping of algorithm mnemonics to algorithm identifiers. */ @@ -123,53 +127,50 @@ public class DnsKeyAlgorithm private HashMap mIdToMnemonicMap; /** This is a cached key pair generator for RSA keys. */ - private KeyPairGenerator mRSAKeyGenerator; + private KeyPairGenerator mRSAKeyGenerator; /** This is a cached key pair generator for DSA keys. */ - private KeyPairGenerator mDSAKeyGenerator; + private KeyPairGenerator mDSAKeyGenerator; /** This is a cached key pair generator for ECC GOST keys. */ - private KeyPairGenerator mECGOSTKeyGenerator; + private KeyPairGenerator mECGOSTKeyGenerator; /** This is a cached key pair generator for ECDSA_P256 keys. */ - private KeyPairGenerator mECKeyGenerator; + private KeyPairGenerator mECKeyGenerator; /** This is a cached key pair generator for EdDSA keys. */ - private KeyPairGenerator mEdKeyGenerator; + private KeyPairGenerator mEdKeyGenerator; - private Logger log = Logger.getLogger(this.getClass().toString()); + private Logger log = Logger.getLogger(this.getClass().toString()); /** This is the global instance for this class. */ - private static DnsKeyAlgorithm mInstance = null; + private static DnsKeyAlgorithm mInstance = null; - public DnsKeyAlgorithm() - { + public DnsKeyAlgorithm() { // Attempt to add the bouncycastle provider. // This is so we can use this provider if it is available, but not require // the user to add it as one of the java.security providers. - try - { + try { Class bc_provider_class = Class.forName("org.bouncycastle.jce.provider.BouncyCastleProvider"); - Provider bc_provider = (Provider) bc_provider_class.newInstance(); + // Provider bc_provider = (Provider) bc_provider_class.newInstance(); + Provider bc_provider = (Provider) bc_provider_class.getDeclaredConstructor().newInstance(); Security.addProvider(bc_provider); + } catch (ReflectiveOperationException e) { } - catch (ReflectiveOperationException e) { } // Attempt to add the EdDSA-Java provider. - try - { + try { Class eddsa_provider_class = Class.forName("net.i2p.crypto.eddsa.EdDSASecurityProvider"); - Provider eddsa_provider = (Provider) eddsa_provider_class.newInstance(); + // Provider eddsa_provider = (Provider) eddsa_provider_class.newInstance(); + Provider eddsa_provider = (Provider) eddsa_provider_class.getDeclaredConstructor().newInstance(); Security.addProvider(eddsa_provider); - } - catch (ReflectiveOperationException e) { + } catch (ReflectiveOperationException e) { log.warning("Unable to load EdDSA provider"); } initialize(); } - private void initialize() - { - mAlgorithmMap = new HashMap(); - mMnemonicToIdMap = new HashMap(); - mIdToMnemonicMap = new HashMap(); + private void initialize() { + mAlgorithmMap = new HashMap<>(); + mMnemonicToIdMap = new HashMap<>(); + mIdToMnemonicMap = new HashMap<>(); // Load the standard DNSSEC algorithms. addAlgorithm(DNSSEC.Algorithm.RSAMD5, "MD5withRSA", RSA); @@ -216,25 +217,24 @@ public class DnsKeyAlgorithm addMnemonic("ECDSA-P384", DNSSEC.Algorithm.ECDSAP384SHA384); // EdDSA is not supported by either the Java 1.8 Sun crypto - // provider or bouncycastle. It is added by the Ed25519-Java - // library. We don't have a corresponding constant in + // provider or bouncycastle. It is added by the Ed25519-Java + // library. We don't have a corresponding constant in // org.xbill.DNS.DNSSEC yet, though. addAlgorithm(15, "NONEwithEdDSA", EDDSA, "Ed25519"); addMnemonic("ED25519", 15); } - private void addAlgorithm(int algorithm, String sigName, int baseType) - { + private void addAlgorithm(int algorithm, String sigName, int baseType) { mAlgorithmMap.put(algorithm, new AlgEntry(algorithm, sigName, baseType)); } - private void addAlgorithm(int algorithm, String sigName, int baseType, String curveName) - { - if (baseType == ECDSA) - { - ECParameterSpec ec_spec = ECSpecFromAlgorithm(algorithm); - if (ec_spec == null) ec_spec = ECSpecFromName(curveName); - if (ec_spec == null) return; + private void addAlgorithm(int algorithm, String sigName, int baseType, String curveName) { + if (baseType == ECDSA) { + ECParameterSpec ecSpec = ECSpecFromAlgorithm(algorithm); + if (ecSpec == null) + ecSpec = ECSpecFromName(curveName); + if (ecSpec == null) + return; // Check to see if we can get a Signature object for this algorithm. try { @@ -245,13 +245,12 @@ public class DnsKeyAlgorithm // If not, do not add the algorithm. return; } - ECAlgEntry entry = new ECAlgEntry(algorithm, sigName, baseType, ec_spec); + ECAlgEntry entry = new ECAlgEntry(algorithm, sigName, baseType, ecSpec); mAlgorithmMap.put(algorithm, entry); - } - else if (baseType == EDDSA) - { - EdDSAParameterSpec ed_spec = EdDSASpecFromName(curveName); - if (ed_spec == null) return; + } else if (baseType == EDDSA) { + EdDSAParameterSpec edSpec = EdDSASpecFromName(curveName); + if (edSpec == null) + return; // Check to see if we can get a Signature object for this algorithm. try { @@ -262,35 +261,29 @@ public class DnsKeyAlgorithm // If not, do not add the algorithm. return; } - EdAlgEntry entry = new EdAlgEntry(algorithm, sigName, baseType, ed_spec); + EdAlgEntry entry = new EdAlgEntry(algorithm, sigName, baseType, edSpec); mAlgorithmMap.put(algorithm, entry); } - } - private void addMnemonic(String m, int alg) - { - // Do not add mnemonics for algorithms that ended up not actually being supported. - if (!mAlgorithmMap.containsKey(alg)) return; + private void addMnemonic(String m, int alg) { + // Do not add mnemonics for algorithms that ended up not actually being + // supported. + if (!mAlgorithmMap.containsKey(alg)) + return; mMnemonicToIdMap.put(m.toUpperCase(), alg); - if (!mIdToMnemonicMap.containsKey(alg)) - { - mIdToMnemonicMap.put(alg, m); - } + mIdToMnemonicMap.computeIfAbsent(alg, k -> m); } - public void addAlias(int alias, String mnemonic, int original_algorithm) - { - if (mAlgorithmMap.containsKey(alias)) - { + public void addAlias(int alias, String mnemonic, int original_algorithm) { + if (mAlgorithmMap.containsKey(alias)) { log.warning("Unable to alias algorithm " + alias + " because it already exists."); return; } - if (!mAlgorithmMap.containsKey(original_algorithm)) - { + if (!mAlgorithmMap.containsKey(original_algorithm)) { log.warning("Unable to alias algorithm " + alias + " to unknown algorithm identifier " + original_algorithm); return; @@ -298,33 +291,28 @@ public class DnsKeyAlgorithm mAlgorithmMap.put(alias, mAlgorithmMap.get(original_algorithm)); - if (mnemonic != null) - { + if (mnemonic != null) { addMnemonic(mnemonic, alias); } } - private AlgEntry getEntry(int alg) - { + private AlgEntry getEntry(int alg) { return mAlgorithmMap.get(alg); } // For curves where we don't (or can't) get the parameters from a standard // name, we can construct the parameters here. For now, we only do this for // the ECC-GOST curve. - private ECParameterSpec ECSpecFromAlgorithm(int algorithm) - { - switch (algorithm) - { - case DNSSEC.Algorithm.ECC_GOST: - { + private ECParameterSpec ECSpecFromAlgorithm(int algorithm) { + switch (algorithm) { + case DNSSEC.Algorithm.ECC_GOST: { // From RFC 4357 Section 11.4 - BigInteger p = new BigInteger("FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD97", 16); - BigInteger a = new BigInteger("FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD94", 16); - BigInteger b = new BigInteger("A6", 16); + BigInteger p = new BigInteger("FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD97", 16); + BigInteger a = new BigInteger("FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD94", 16); + BigInteger b = new BigInteger("A6", 16); BigInteger gx = new BigInteger("1", 16); BigInteger gy = new BigInteger("8D91E471E0989CDA27DF505A453F2B7635294F2DDF23E3B122ACC99C9E9F1E14", 16); - BigInteger n = new BigInteger( "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6C611070995AD10045841B09B761B893", 16); + BigInteger n = new BigInteger("FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6C611070995AD10045841B09B761B893", 16); EllipticCurve curve = new EllipticCurve(new ECFieldFp(p), a, b); return new ECParameterSpec(curve, new ECPoint(gx, gy), n, 1); @@ -335,35 +323,31 @@ public class DnsKeyAlgorithm } // Fetch the curve parameters from a named ECDSA curve. - private ECParameterSpec ECSpecFromName(String stdName) - { - try - { + private ECParameterSpec ECSpecFromName(String stdName) { + try { AlgorithmParameters ap = AlgorithmParameters.getInstance("EC"); ECGenParameterSpec ecg_spec = new ECGenParameterSpec(stdName); ap.init(ecg_spec); return ap.getParameterSpec(ECParameterSpec.class); - } - catch (NoSuchAlgorithmException e) { + } catch (NoSuchAlgorithmException e) { log.info("Elliptic Curve not supported by any crypto provider: " + e.getMessage()); - } - catch (InvalidParameterSpecException e) { + } catch (InvalidParameterSpecException e) { log.info("Elliptic Curve " + stdName + " not supported"); } return null; } // Fetch the curve parameters from a named EdDSA curve. - private EdDSAParameterSpec EdDSASpecFromName(String stdName) - { - try - { + private EdDSAParameterSpec EdDSASpecFromName(String stdName) { + try { EdDSAParameterSpec spec = EdDSANamedCurveTable.getByName(stdName); - if (spec != null) return spec; + if (spec != null) + return spec; throw new InvalidParameterSpecException("Edwards Curve " + stdName + " not found."); } // catch (NoSuchAlgorithmException e) { - // log.info("Edwards Curve not supported by any crypto provider: " + e.getMessage()); + // log.info("Edwards Curve not supported by any crypto provider: " + + // e.getMessage()); // } catch (InvalidParameterSpecException e) { log.info("Edwards Curve " + stdName + " not supported"); @@ -371,15 +355,13 @@ public class DnsKeyAlgorithm return null; } - public String[] supportedAlgMnemonics() - { + public String[] supportedAlgMnemonics() { Set keyset = mAlgorithmMap.keySet(); Integer[] algs = keyset.toArray(new Integer[keyset.size()]); Arrays.sort(algs); String[] result = new String[algs.length]; - for (int i = 0; i < algs.length; i++) - { + for (int i = 0; i < algs.length; i++) { result[i] = mIdToMnemonicMap.get(algs[i]); } @@ -388,22 +370,20 @@ public class DnsKeyAlgorithm /** * Return a Signature object for the specified DNSSEC algorithm. + * * @param algorithm The DNSSEC algorithm (by number). * @return a Signature object. */ - public Signature getSignature(int algorithm) - { + public Signature getSignature(int algorithm) { AlgEntry entry = getEntry(algorithm); - if (entry == null) return null; + if (entry == null) + return null; Signature s = null; - try - { + try { s = Signature.getInstance(entry.sigName); - } - catch (NoSuchAlgorithmException e) - { + } catch (NoSuchAlgorithmException e) { log.severe("Unable to get signature implementation for algorithm " + algorithm + ": " + e); } @@ -416,36 +396,39 @@ public class DnsKeyAlgorithm * the elliptic curve parameters. * * @param algorithm - * The DNSSEC algorithm number. + * The DNSSEC algorithm number. * @return The calculated JCA ECParameterSpec for that DNSSEC algorithm, or * null if not a recognized/supported EC algorithm. */ - public ECParameterSpec getEllipticCurveParams(int algorithm) - { + public ECParameterSpec getEllipticCurveParams(int algorithm) { AlgEntry entry = getEntry(algorithm); - if (entry == null) return null; - if (!(entry instanceof ECAlgEntry)) return null; + if (entry == null) + return null; + if (!(entry instanceof ECAlgEntry)) + return null; ECAlgEntry ec_entry = (ECAlgEntry) entry; - return ec_entry.ec_spec; + return ec_entry.ecSpec; } - /** Given one of the EdDSA algorithms (Ed25519, Ed448) return the + /** + * Given one of the EdDSA algorithms (Ed25519, Ed448) return the * elliptic curve parameters. * * @param algorithm - * The DNSSEC algorithm number. + * The DNSSEC algorithm number. * @return The stored EdDSAParameterSpec for that algorithm, or * null if not a recognized/supported EdDSA algorithm. */ - public EdDSAParameterSpec getEdwardsCurveParams(int algorithm) - { + public EdDSAParameterSpec getEdwardsCurveParams(int algorithm) { AlgEntry entry = getEntry(algorithm); - if (entry == null) return null; - if (!(entry instanceof EdAlgEntry)) return null; + if (entry == null) + return null; + if (!(entry instanceof EdAlgEntry)) + return null; EdAlgEntry ed_entry = (EdAlgEntry) entry; - return ed_entry.ed_spec; + return ed_entry.edSpec; } /** @@ -453,14 +436,14 @@ public class DnsKeyAlgorithm * number * * @param algorithm - * a DNSSEC algorithm that may be an alias. + * a DNSSEC algorithm that may be an alias. * @return -1 if the algorithm isn't recognised, the orignal algorithm number * if it is. */ - public int originalAlgorithm(int algorithm) - { + public int originalAlgorithm(int algorithm) { AlgEntry entry = getEntry(algorithm); - if (entry == null) return -1; + if (entry == null) + return -1; return entry.dnssecAlgorithm; } @@ -468,11 +451,12 @@ public class DnsKeyAlgorithm * Test if a given algorithm is supported. * * @param algorithm The DNSSEC algorithm number. - * @return true if the algorithm is a recognized and supported algorithm or alias. + * @return true if the algorithm is a recognized and supported algorithm or + * alias. */ - public boolean supportedAlgorithm(int algorithm) - { - if (mAlgorithmMap.containsKey(algorithm)) return true; + public boolean supportedAlgorithm(int algorithm) { + if (mAlgorithmMap.containsKey(algorithm)) + return true; return false; } @@ -485,10 +469,10 @@ public class DnsKeyAlgorithm * @return -1 if the mnemonic isn't recognized or supported, the algorithm * number if it is. */ - public int stringToAlgorithm(String s) - { + public int stringToAlgorithm(String s) { Integer alg = mMnemonicToIdMap.get(s.toUpperCase()); - if (alg != null) return alg.intValue(); + if (alg != null) + return alg.intValue(); return -1; } @@ -496,55 +480,43 @@ public class DnsKeyAlgorithm * Given a DNSSEC algorithm number, return the "preferred" mnemonic. * * @param algorithm - * A DNSSEC algorithm number. + * A DNSSEC algorithm number. * @return The preferred mnemonic string, or null if not supported or * recognized. */ - public String algToString(int algorithm) - { + public String algToString(int algorithm) { return mIdToMnemonicMap.get(algorithm); } - public int baseType(int algorithm) - { + public int baseType(int algorithm) { AlgEntry entry = getEntry(algorithm); - if (entry != null) return entry.baseType; + if (entry != null) + return entry.baseType; return UNKNOWN; } - public boolean isDSA(int algorithm) - { + public boolean isDSA(int algorithm) { return (baseType(algorithm) == DSA); } public KeyPair generateKeyPair(int algorithm, int keysize, boolean useLargeExp) - throws NoSuchAlgorithmException - { + throws NoSuchAlgorithmException { KeyPair pair = null; - switch (baseType(algorithm)) - { - case RSA: - { - if (mRSAKeyGenerator == null) - { + switch (baseType(algorithm)) { + case RSA: { + if (mRSAKeyGenerator == null) { mRSAKeyGenerator = KeyPairGenerator.getInstance("RSA"); } RSAKeyGenParameterSpec rsa_spec; - if (useLargeExp) - { + if (useLargeExp) { rsa_spec = new RSAKeyGenParameterSpec(keysize, RSAKeyGenParameterSpec.F4); - } - else - { + } else { rsa_spec = new RSAKeyGenParameterSpec(keysize, RSAKeyGenParameterSpec.F0); } - try - { + try { mRSAKeyGenerator.initialize(rsa_spec); - } - catch (InvalidAlgorithmParameterException e) - { + } catch (InvalidAlgorithmParameterException e) { // Fold the InvalidAlgorithmParameterException into our existing // thrown exception. Ugly, but requires less code change. throw new NoSuchAlgorithmException("invalid key parameter spec"); @@ -553,30 +525,23 @@ public class DnsKeyAlgorithm pair = mRSAKeyGenerator.generateKeyPair(); break; } - case DSA: - { - if (mDSAKeyGenerator == null) - { + case DSA: { + if (mDSAKeyGenerator == null) { mDSAKeyGenerator = KeyPairGenerator.getInstance("DSA"); } mDSAKeyGenerator.initialize(keysize); pair = mDSAKeyGenerator.generateKeyPair(); break; } - case ECC_GOST: - { - if (mECGOSTKeyGenerator == null) - { + case ECC_GOST: { + if (mECGOSTKeyGenerator == null) { mECGOSTKeyGenerator = KeyPairGenerator.getInstance("ECGOST3410"); } - ECParameterSpec ec_spec = getEllipticCurveParams(algorithm); - try - { - mECGOSTKeyGenerator.initialize(ec_spec); - } - catch (InvalidAlgorithmParameterException e) - { + ECParameterSpec ecSpec = getEllipticCurveParams(algorithm); + try { + mECGOSTKeyGenerator.initialize(ecSpec); + } catch (InvalidAlgorithmParameterException e) { // Fold the InvalidAlgorithmParameterException into our existing // thrown exception. Ugly, but requires less code change. throw new NoSuchAlgorithmException("invalid key parameter spec"); @@ -584,20 +549,15 @@ public class DnsKeyAlgorithm pair = mECGOSTKeyGenerator.generateKeyPair(); break; } - case ECDSA: - { - if (mECKeyGenerator == null) - { + case ECDSA: { + if (mECKeyGenerator == null) { mECKeyGenerator = KeyPairGenerator.getInstance("EC"); } - ECParameterSpec ec_spec = getEllipticCurveParams(algorithm); - try - { - mECKeyGenerator.initialize(ec_spec); - } - catch (InvalidAlgorithmParameterException e) - { + ECParameterSpec ecSpec = getEllipticCurveParams(algorithm); + try { + mECKeyGenerator.initialize(ecSpec); + } catch (InvalidAlgorithmParameterException e) { // Fold the InvalidAlgorithmParameterException into our existing // thrown exception. Ugly, but requires less code change. throw new NoSuchAlgorithmException("invalid key parameter spec"); @@ -605,20 +565,15 @@ public class DnsKeyAlgorithm pair = mECKeyGenerator.generateKeyPair(); break; } - case EDDSA: - { - if (mEdKeyGenerator == null) - { + case EDDSA: { + if (mEdKeyGenerator == null) { mEdKeyGenerator = KeyPairGenerator.getInstance("EdDSA"); } - EdDSAParameterSpec ed_spec = getEdwardsCurveParams(algorithm); - try - { - mEdKeyGenerator.initialize(ed_spec, new SecureRandom()); - } - catch (InvalidAlgorithmParameterException e) - { + EdDSAParameterSpec edSpec = getEdwardsCurveParams(algorithm); + try { + mEdKeyGenerator.initialize(edSpec, new SecureRandom()); + } catch (InvalidAlgorithmParameterException e) { // Fold the InvalidAlgorithmParameterException into our existing // thrown exception. Ugly, but requires less code change. throw new NoSuchAlgorithmException("invalid key parameter spec"); @@ -626,22 +581,21 @@ public class DnsKeyAlgorithm pair = mEdKeyGenerator.generateKeyPair(); break; } - default: - throw new NoSuchAlgorithmException("Alg " + algorithm); + default: + throw new NoSuchAlgorithmException("Alg " + algorithm); } return pair; } public KeyPair generateKeyPair(int algorithm, int keysize) - throws NoSuchAlgorithmException - { + throws NoSuchAlgorithmException { return generateKeyPair(algorithm, keysize, false); } - public static DnsKeyAlgorithm getInstance() - { - if (mInstance == null) mInstance = new DnsKeyAlgorithm(); + public static DnsKeyAlgorithm getInstance() { + if (mInstance == null) + mInstance = new DnsKeyAlgorithm(); return mInstance; } } diff --git a/src/main/java/com/verisignlabs/dnssec/security/DnsKeyConverter.java b/src/main/java/com/verisignlabs/dnssec/security/DnsKeyConverter.java index 25fda27..bf65af2 100644 --- a/src/main/java/com/verisignlabs/dnssec/security/DnsKeyConverter.java +++ b/src/main/java/com/verisignlabs/dnssec/security/DnsKeyConverter.java @@ -1,6 +1,4 @@ -// $Id$ -// -// Copyright (C) 2001-2003 VeriSign, Inc. +// Copyright (C) 2001-2003, 2022 VeriSign, Inc. // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public @@ -27,8 +25,19 @@ import java.security.KeyFactory; import java.security.NoSuchAlgorithmException; import java.security.PrivateKey; import java.security.PublicKey; -import java.security.interfaces.*; -import java.security.spec.*; +import java.security.interfaces.DSAParams; +import java.security.interfaces.DSAPrivateKey; +import java.security.interfaces.DSAPublicKey; +import java.security.interfaces.ECPrivateKey; +import java.security.interfaces.ECPublicKey; +import java.security.interfaces.RSAPrivateCrtKey; +import java.security.spec.DSAPrivateKeySpec; +import java.security.spec.ECParameterSpec; +import java.security.spec.ECPrivateKeySpec; +import java.security.spec.InvalidKeySpecException; +import java.security.spec.KeySpec; +import java.security.spec.PKCS8EncodedKeySpec; +import java.security.spec.RSAPrivateCrtKeySpec; import java.util.StringTokenizer; import javax.crypto.interfaces.DHPrivateKey; @@ -36,27 +45,25 @@ import javax.crypto.interfaces.DHPublicKey; import javax.crypto.spec.DHParameterSpec; import javax.crypto.spec.DHPrivateKeySpec; -// For now, just import the native EdDSA classes -import net.i2p.crypto.eddsa.EdDSAPublicKey; -import net.i2p.crypto.eddsa.EdDSAPrivateKey; -import net.i2p.crypto.eddsa.spec.*; - import org.xbill.DNS.DNSKEYRecord; -import org.xbill.DNS.DNSSEC; import org.xbill.DNS.DNSSEC.DNSSECException; import org.xbill.DNS.Name; import org.xbill.DNS.utils.base64; +import net.i2p.crypto.eddsa.EdDSAPrivateKey; +// For now, just import the native EdDSA classes +import net.i2p.crypto.eddsa.EdDSAPublicKey; +import net.i2p.crypto.eddsa.spec.EdDSAParameterSpec; +import net.i2p.crypto.eddsa.spec.EdDSAPrivateKeySpec; +import net.i2p.crypto.eddsa.spec.EdDSAPublicKeySpec; + /** * This class handles conversions between JCA key formats and DNSSEC and BIND9 * key formats. * - * @author David Blacka (original) - * @author $Author$ (latest) - * @version $Revision$ + * @author David Blacka */ -public class DnsKeyConverter -{ +public class DnsKeyConverter { private KeyFactory mRSAKeyFactory; private KeyFactory mDSAKeyFactory; private KeyFactory mDHKeyFactory; @@ -64,8 +71,7 @@ public class DnsKeyConverter private KeyFactory mEdKeyFactory; private DnsKeyAlgorithm mAlgorithms; - public DnsKeyConverter() - { + public DnsKeyConverter() { mAlgorithms = DnsKeyAlgorithm.getInstance(); } @@ -75,29 +81,28 @@ public class DnsKeyConverter * @throws NoSuchAlgorithmException */ public PublicKey parseDNSKEYRecord(DNSKEYRecord pKeyRecord) - throws NoSuchAlgorithmException - { - if (pKeyRecord.getKey() == null) return null; + throws NoSuchAlgorithmException { + if (pKeyRecord.getKey() == null) + return null; // Because we have arbitrarily aliased algorithms, we need to possibly // translate the aliased algorithm back to the actual algorithm. int originalAlgorithm = mAlgorithms.originalAlgorithm(pKeyRecord.getAlgorithm()); - if (originalAlgorithm <= 0) throw new NoSuchAlgorithmException("DNSKEY algorithm " - + pKeyRecord.getAlgorithm() + " is unrecognized"); + if (originalAlgorithm <= 0) + throw new NoSuchAlgorithmException("DNSKEY algorithm " + + pKeyRecord.getAlgorithm() + " is unrecognized"); - if (pKeyRecord.getAlgorithm() != originalAlgorithm) - { + if (pKeyRecord.getAlgorithm() != originalAlgorithm) { pKeyRecord = new DNSKEYRecord(pKeyRecord.getName(), pKeyRecord.getDClass(), - pKeyRecord.getTTL(), pKeyRecord.getFlags(), - pKeyRecord.getProtocol(), originalAlgorithm, - pKeyRecord.getKey()); + pKeyRecord.getTTL(), pKeyRecord.getFlags(), + pKeyRecord.getProtocol(), originalAlgorithm, + pKeyRecord.getKey()); } // do not rely on DNSJava's method for EdDSA for now. - if (mAlgorithms.baseType(originalAlgorithm) == DnsKeyAlgorithm.EDDSA) - { + if (mAlgorithms.baseType(originalAlgorithm) == DnsKeyAlgorithm.EDDSA) { try { return parseEdDSADNSKEYRecord(pKeyRecord); } catch (InvalidKeySpecException e) { @@ -106,26 +111,24 @@ public class DnsKeyConverter } } - try - { + try { // This uses DNSJava's DNSSEC.toPublicKey() method. return pKeyRecord.getPublicKey(); - } - catch (DNSSECException e) - { + } catch (DNSSECException e) { throw new NoSuchAlgorithmException(e); } } - /** Since we don't (yet) have support in DNSJava for parsing the - newer EdDSA algorithms, here is a local version. */ + /** + * Since we don't (yet) have support in DNSJava for parsing the + * newer EdDSA algorithms, here is a local version. + */ private PublicKey parseEdDSADNSKEYRecord(DNSKEYRecord pKeyRecord) - throws IllegalArgumentException, NoSuchAlgorithmException, InvalidKeySpecException - { + throws IllegalArgumentException, NoSuchAlgorithmException, InvalidKeySpecException { byte[] seed = pKeyRecord.getKey(); - EdDSAPublicKeySpec spec = new EdDSAPublicKeySpec - (seed, mAlgorithms.getEdwardsCurveParams(pKeyRecord.getAlgorithm())); + EdDSAPublicKeySpec spec = new EdDSAPublicKeySpec(seed, + mAlgorithms.getEdwardsCurveParams(pKeyRecord.getAlgorithm())); KeyFactory factory = KeyFactory.getInstance("EdDSA"); return factory.generatePublic(spec); @@ -135,52 +138,44 @@ public class DnsKeyConverter * Given a JCA public key and the ancillary data, generate a DNSKEY record. */ public DNSKEYRecord generateDNSKEYRecord(Name name, int dclass, long ttl, - int flags, int alg, PublicKey key) - { - try - { + int flags, int alg, PublicKey key) { + try { if (mAlgorithms.baseType(alg) == DnsKeyAlgorithm.EDDSA) { return generateEdDSADNSKEYRecord(name, dclass, ttl, flags, alg, key); } return new DNSKEYRecord(name, dclass, ttl, flags, DNSKEYRecord.Protocol.DNSSEC, alg, - key); - } - catch (DNSSECException e) - { - // FIXME: this mimics the behavior of KEYConverter.buildRecord(), which would return null if the algorithm was unknown. + key); + } catch (DNSSECException e) { + // FIXME: this mimics the behavior of KEYConverter.buildRecord(), which would + // return null if the algorithm was unknown. return null; } } - private DNSKEYRecord generateEdDSADNSKEYRecord(Name name, int dclass, long ttl, - int flags, int alg, PublicKey key) - { + int flags, int alg, PublicKey key) { EdDSAPublicKey ed_key = (EdDSAPublicKey) key; byte[] key_data = ed_key.getAbyte(); return new DNSKEYRecord(name, dclass, ttl, flags, DNSKEYRecord.Protocol.DNSSEC, alg, - key_data); + key_data); } // Private Key Specific Parsing routines /** * Convert a PKCS#8 encoded private key into a PrivateKey object. */ - public PrivateKey convertEncodedPrivateKey(byte[] key, int algorithm) - { + public PrivateKey convertEncodedPrivateKey(byte[] key, int algorithm) { PKCS8EncodedKeySpec spec = new PKCS8EncodedKeySpec(key); - try - { - switch (mAlgorithms.baseType(algorithm)) - { + try { + switch (mAlgorithms.baseType(algorithm)) { case DnsKeyAlgorithm.RSA: return mRSAKeyFactory.generatePrivate(spec); case DnsKeyAlgorithm.DSA: return mDSAKeyFactory.generatePrivate(spec); + default: + return null; } - } - catch (GeneralSecurityException e) - { + } catch (GeneralSecurityException e) { e.printStackTrace(); } @@ -191,14 +186,10 @@ public class DnsKeyConverter * A simple wrapper for parsing integers; parse failures result in the * supplied default. */ - private static int parseInt(String s, int def) - { - try - { + private static int parseInt(String s, int def) { + try { return Integer.parseInt(s); - } - catch (NumberFormatException e) - { + } catch (NumberFormatException e) { return def; } } @@ -207,37 +198,33 @@ public class DnsKeyConverter * @return a JCA private key, given a BIND9-style textual encoding */ public PrivateKey parsePrivateKeyString(String key) - throws IOException, NoSuchAlgorithmException - { + throws IOException, NoSuchAlgorithmException { StringTokenizer lines = new StringTokenizer(key, "\n"); - while (lines.hasMoreTokens()) - { + while (lines.hasMoreTokens()) { String line = lines.nextToken(); - if (line == null) continue; + if (line == null) + continue; - if (line.startsWith("#")) continue; + if (line.startsWith("#")) + continue; String val = value(line); - if (val == null) continue; + if (val == null) + continue; - if (line.startsWith("Private-key-format: ")) - { - if (!val.equals("v1.2") && !val.equals("v1.3")) - { + if (line.startsWith("Private-key-format: ")) { + if (!val.equals("v1.2") && !val.equals("v1.3")) { throw new IOException("unsupported private key format: " + val); } - } - else if (line.startsWith("Algorithm: ")) - { + } else if (line.startsWith("Algorithm: ")) { // here we assume that the value looks like # (MNEM) or just the // number. String[] toks = val.split("\\s", 2); val = toks[0]; int alg = parseInt(val, -1); - switch (mAlgorithms.baseType(alg)) - { + switch (mAlgorithms.baseType(alg)) { case DnsKeyAlgorithm.RSA: return parsePrivateRSA(lines); case DnsKeyAlgorithm.DSA: @@ -261,14 +248,16 @@ public class DnsKeyConverter /** * @return the value part of an "attribute:value" pair. The value is trimmed. */ - private static String value(String av) - { - if (av == null) return null; + private static String value(String av) { + if (av == null) + return null; int pos = av.indexOf(':'); - if (pos < 0) return av; + if (pos < 0) + return av; - if (pos >= av.length()) return null; + if (pos >= av.length()) + return null; return av.substring(pos + 1).trim(); } @@ -278,11 +267,10 @@ public class DnsKeyConverter * translate into a JCA private key * * @throws NoSuchAlgorithmException - * if the RSA algorithm is not available. + * if the RSA algorithm is not available. */ private PrivateKey parsePrivateRSA(StringTokenizer lines) - throws NoSuchAlgorithmException - { + throws NoSuchAlgorithmException { BigInteger modulus = null; BigInteger public_exponent = null; BigInteger private_exponent = null; @@ -292,71 +280,54 @@ public class DnsKeyConverter BigInteger prime_q_exponent = null; BigInteger coefficient = null; - while (lines.hasMoreTokens()) - { + while (lines.hasMoreTokens()) { String line = lines.nextToken(); - if (line == null) continue; + if (line == null) + continue; - if (line.startsWith("#")) continue; + if (line.startsWith("#")) + continue; String val = value(line); - if (val == null) continue; + if (val == null) + continue; byte[] data = base64.fromString(val); - if (line.startsWith("Modulus: ")) - { + if (line.startsWith("Modulus: ")) { modulus = new BigInteger(1, data); // printBigIntCompare(data, modulus); - } - else if (line.startsWith("PublicExponent: ")) - { + } else if (line.startsWith("PublicExponent: ")) { public_exponent = new BigInteger(1, data); // printBigIntCompare(data, public_exponent); - } - else if (line.startsWith("PrivateExponent: ")) - { + } else if (line.startsWith("PrivateExponent: ")) { private_exponent = new BigInteger(1, data); // printBigIntCompare(data, private_exponent); - } - else if (line.startsWith("Prime1: ")) - { + } else if (line.startsWith("Prime1: ")) { prime_p = new BigInteger(1, data); // printBigIntCompare(data, prime_p); - } - else if (line.startsWith("Prime2: ")) - { + } else if (line.startsWith("Prime2: ")) { prime_q = new BigInteger(1, data); // printBigIntCompare(data, prime_q); - } - else if (line.startsWith("Exponent1: ")) - { + } else if (line.startsWith("Exponent1: ")) { prime_p_exponent = new BigInteger(1, data); - } - else if (line.startsWith("Exponent2: ")) - { + } else if (line.startsWith("Exponent2: ")) { prime_q_exponent = new BigInteger(1, data); - } - else if (line.startsWith("Coefficient: ")) - { + } else if (line.startsWith("Coefficient: ")) { coefficient = new BigInteger(1, data); } } - try - { + try { KeySpec spec = new RSAPrivateCrtKeySpec(modulus, public_exponent, - private_exponent, prime_p, - prime_q, prime_p_exponent, - prime_q_exponent, coefficient); - if (mRSAKeyFactory == null) - { + private_exponent, prime_p, + prime_q, prime_p_exponent, + prime_q_exponent, coefficient); + if (mRSAKeyFactory == null) { mRSAKeyFactory = KeyFactory.getInstance("RSA"); } return mRSAKeyFactory.generatePrivate(spec); - } - catch (InvalidKeySpecException e) - { + } catch (InvalidKeySpecException e) { e.printStackTrace(); return null; } @@ -367,52 +338,44 @@ public class DnsKeyConverter * info and translate it into a JCA private key. * * @throws NoSuchAlgorithmException - * if the DH algorithm is not available. + * if the DH algorithm is not available. */ private PrivateKey parsePrivateDH(StringTokenizer lines) - throws NoSuchAlgorithmException - { + throws NoSuchAlgorithmException { BigInteger p = null; BigInteger x = null; BigInteger g = null; - while (lines.hasMoreTokens()) - { + while (lines.hasMoreTokens()) { String line = lines.nextToken(); - if (line == null) continue; + if (line == null) + continue; - if (line.startsWith("#")) continue; + if (line.startsWith("#")) + continue; String val = value(line); - if (val == null) continue; + if (val == null) + continue; byte[] data = base64.fromString(val); - if (line.startsWith("Prime(p): ")) - { + if (line.startsWith("Prime(p): ")) { p = new BigInteger(1, data); - } - else if (line.startsWith("Generator(g): ")) - { + } else if (line.startsWith("Generator(g): ")) { g = new BigInteger(1, data); - } - else if (line.startsWith("Private_value(x): ")) - { + } else if (line.startsWith("Private_value(x): ")) { x = new BigInteger(1, data); } } - try - { + try { KeySpec spec = new DHPrivateKeySpec(x, p, g); - if (mDHKeyFactory == null) - { + if (mDHKeyFactory == null) { mDHKeyFactory = KeyFactory.getInstance("DH"); } return mDHKeyFactory.generatePrivate(spec); - } - catch (InvalidKeySpecException e) - { + } catch (InvalidKeySpecException e) { e.printStackTrace(); return null; } @@ -423,57 +386,47 @@ public class DnsKeyConverter * info and translate it into a JCA private key. * * @throws NoSuchAlgorithmException - * if the DSA algorithm is not available. + * if the DSA algorithm is not available. */ private PrivateKey parsePrivateDSA(StringTokenizer lines) - throws NoSuchAlgorithmException - { + throws NoSuchAlgorithmException { BigInteger p = null; BigInteger q = null; BigInteger g = null; BigInteger x = null; - while (lines.hasMoreTokens()) - { + while (lines.hasMoreTokens()) { String line = lines.nextToken(); - if (line == null) continue; + if (line == null) + continue; - if (line.startsWith("#")) continue; + if (line.startsWith("#")) + continue; String val = value(line); - if (val == null) continue; + if (val == null) + continue; byte[] data = base64.fromString(val); - if (line.startsWith("Prime(p): ")) - { + if (line.startsWith("Prime(p): ")) { p = new BigInteger(1, data); - } - else if (line.startsWith("Subprime(q): ")) - { + } else if (line.startsWith("Subprime(q): ")) { q = new BigInteger(1, data); - } - else if (line.startsWith("Base(g): ")) - { + } else if (line.startsWith("Base(g): ")) { g = new BigInteger(1, data); - } - else if (line.startsWith("Private_value(x): ")) - { + } else if (line.startsWith("Private_value(x): ")) { x = new BigInteger(1, data); } } - try - { + try { KeySpec spec = new DSAPrivateKeySpec(x, p, q, g); - if (mDSAKeyFactory == null) - { + if (mDSAKeyFactory == null) { mDSAKeyFactory = KeyFactory.getInstance("DSA"); } return mDSAKeyFactory.generatePrivate(spec); - } - catch (InvalidKeySpecException e) - { + } catch (InvalidKeySpecException e) { e.printStackTrace(); return null; } @@ -482,52 +435,48 @@ public class DnsKeyConverter /** * Given the remaining lines in a BIND9-style ECDSA private key, parse the key * info and translate it into a JCA private key object. + * * @param lines The remaining lines in a private key file (after * @throws NoSuchAlgorithmException - * If elliptic curve is not available. + * If elliptic curve is not available. */ private PrivateKey parsePrivateECDSA(StringTokenizer lines, int algorithm) - throws NoSuchAlgorithmException - { + throws NoSuchAlgorithmException { BigInteger s = null; - while (lines.hasMoreTokens()) - { + while (lines.hasMoreTokens()) { String line = lines.nextToken(); - if (line == null) continue; + if (line == null) + continue; - if (line.startsWith("#")) continue; + if (line.startsWith("#")) + continue; String val = value(line); - if (val == null) continue; + if (val == null) + continue; byte[] data = base64.fromString(val); - if (line.startsWith("PrivateKey: ")) - { + if (line.startsWith("PrivateKey: ")) { s = new BigInteger(1, data); } } - if (mECKeyFactory == null) - { + if (mECKeyFactory == null) { mECKeyFactory = KeyFactory.getInstance("EC"); } ECParameterSpec ec_spec = mAlgorithms.getEllipticCurveParams(algorithm); - if (ec_spec == null) - { + if (ec_spec == null) { throw new NoSuchAlgorithmException("DNSSEC algorithm " + algorithm + - " is not a recognized Elliptic Curve algorithm"); + " is not a recognized Elliptic Curve algorithm"); } KeySpec spec = new ECPrivateKeySpec(s, ec_spec); - try - { + try { return mECKeyFactory.generatePrivate(spec); - } - catch (InvalidKeySpecException e) - { + } catch (InvalidKeySpecException e) { e.printStackTrace(); return null; } @@ -536,52 +485,48 @@ public class DnsKeyConverter /** * Given the remaining lines in a BIND9-style ECDSA private key, parse the key * info and translate it into a JCA private key object. + * * @param lines The remaining lines in a private key file (after * @throws NoSuchAlgorithmException - * If elliptic curve is not available. + * If elliptic curve is not available. */ private PrivateKey parsePrivateEdDSA(StringTokenizer lines, int algorithm) - throws NoSuchAlgorithmException - { + throws NoSuchAlgorithmException { byte[] seed = null; - while (lines.hasMoreTokens()) - { + while (lines.hasMoreTokens()) { String line = lines.nextToken(); - if (line == null) continue; + if (line == null) + continue; - if (line.startsWith("#")) continue; + if (line.startsWith("#")) + continue; String val = value(line); - if (val == null) continue; + if (val == null) + continue; byte[] data = base64.fromString(val); - if (line.startsWith("PrivateKey: ")) - { + if (line.startsWith("PrivateKey: ")) { seed = data; } } - if (mEdKeyFactory == null) - { + if (mEdKeyFactory == null) { mEdKeyFactory = KeyFactory.getInstance("EdDSA"); } EdDSAParameterSpec ed_spec = mAlgorithms.getEdwardsCurveParams(algorithm); - if (ed_spec == null) - { + if (ed_spec == null) { throw new NoSuchAlgorithmException("DNSSEC algorithm " + algorithm + - " is not a recognized Edwards Curve algorithm"); + " is not a recognized Edwards Curve algorithm"); } KeySpec spec = new EdDSAPrivateKeySpec(seed, ed_spec); - try - { + try { return mEdKeyFactory.generatePrivate(spec); - } - catch (InvalidKeySpecException e) - { + } catch (InvalidKeySpecException e) { e.printStackTrace(); return null; } @@ -591,26 +536,16 @@ public class DnsKeyConverter * Given a private key and public key, generate the BIND9 style private key * format. */ - public String generatePrivateKeyString(PrivateKey priv, PublicKey pub, int alg) - { - if (priv instanceof RSAPrivateCrtKey) - { + public String generatePrivateKeyString(PrivateKey priv, PublicKey pub, int alg) { + if (priv instanceof RSAPrivateCrtKey) { return generatePrivateRSA((RSAPrivateCrtKey) priv, alg); - } - else if (priv instanceof DSAPrivateKey && pub instanceof DSAPublicKey) - { + } else if (priv instanceof DSAPrivateKey && pub instanceof DSAPublicKey) { return generatePrivateDSA((DSAPrivateKey) priv, (DSAPublicKey) pub, alg); - } - else if (priv instanceof DHPrivateKey && pub instanceof DHPublicKey) - { + } else if (priv instanceof DHPrivateKey && pub instanceof DHPublicKey) { return generatePrivateDH((DHPrivateKey) priv, (DHPublicKey) pub, alg); - } - else if (priv instanceof ECPrivateKey && pub instanceof ECPublicKey) - { + } else if (priv instanceof ECPrivateKey && pub instanceof ECPublicKey) { return generatePrivateEC((ECPrivateKey) priv, (ECPublicKey) pub, alg); - } - else if (priv instanceof EdDSAPrivateKey && pub instanceof EdDSAPublicKey) - { + } else if (priv instanceof EdDSAPrivateKey && pub instanceof EdDSAPublicKey) { return generatePrivateED((EdDSAPrivateKey) priv, (EdDSAPublicKey) pub, alg); } @@ -620,12 +555,10 @@ public class DnsKeyConverter /** * Convert from 'unsigned' big integer to original 'signed format' in Base64 */ - private static String b64BigInt(BigInteger i) - { + private static String b64BigInt(BigInteger i) { byte[] orig_bytes = i.toByteArray(); - if (orig_bytes[0] != 0 || orig_bytes.length == 1) - { + if (orig_bytes[0] != 0 || orig_bytes.length == 1) { return base64.toString(orig_bytes); } @@ -639,8 +572,7 @@ public class DnsKeyConverter * Given a RSA private key (in Crt format), return the BIND9-style text * encoding. */ - private String generatePrivateRSA(RSAPrivateCrtKey key, int algorithm) - { + private String generatePrivateRSA(RSAPrivateCrtKey key, int algorithm) { StringWriter sw = new StringWriter(); PrintWriter out = new PrintWriter(sw); @@ -669,8 +601,7 @@ public class DnsKeyConverter /** Given a DH key pair, return the BIND9-style text encoding */ private String generatePrivateDH(DHPrivateKey key, DHPublicKey pub, - int algorithm) - { + int algorithm) { StringWriter sw = new StringWriter(); PrintWriter out = new PrintWriter(sw); @@ -693,8 +624,7 @@ public class DnsKeyConverter /** Given a DSA key pair, return the BIND9-style text encoding */ private String generatePrivateDSA(DSAPrivateKey key, DSAPublicKey pub, - int algorithm) - { + int algorithm) { StringWriter sw = new StringWriter(); PrintWriter out = new PrintWriter(sw); @@ -721,8 +651,7 @@ public class DnsKeyConverter * Given an elliptic curve key pair, and the actual algorithm (which will * describe the curve used), return the BIND9-style text encoding. */ - private String generatePrivateEC(ECPrivateKey priv, ECPublicKey pub, int alg) - { + private String generatePrivateEC(ECPrivateKey priv, ECPublicKey pub, int alg) { StringWriter sw = new StringWriter(); PrintWriter out = new PrintWriter(sw); @@ -739,8 +668,7 @@ public class DnsKeyConverter * Given an edwards curve key pair, and the actual algorithm (which will * describe the curve used), return the BIND9-style text encoding. */ - private String generatePrivateED(EdDSAPrivateKey priv, EdDSAPublicKey pub, int alg) - { + private String generatePrivateED(EdDSAPrivateKey priv, EdDSAPublicKey pub, int alg) { StringWriter sw = new StringWriter(); PrintWriter out = new PrintWriter(sw); diff --git a/src/main/java/com/verisignlabs/dnssec/security/DnsKeyPair.java b/src/main/java/com/verisignlabs/dnssec/security/DnsKeyPair.java index 0b94970..ba6d5e7 100644 --- a/src/main/java/com/verisignlabs/dnssec/security/DnsKeyPair.java +++ b/src/main/java/com/verisignlabs/dnssec/security/DnsKeyPair.java @@ -1,6 +1,4 @@ -// $Id$ -// -// Copyright (C) 2001-2003 VeriSign, Inc. +// Copyright (C) 2001-2003, 2022 VeriSign, Inc. // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public @@ -18,11 +16,21 @@ package com.verisignlabs.dnssec.security; -import java.security.*; -import java.security.interfaces.*; +import java.security.InvalidKeyException; +import java.security.NoSuchAlgorithmException; +import java.security.PrivateKey; +import java.security.PublicKey; +import java.security.Signature; +import java.security.interfaces.DSAPrivateKey; +import java.security.interfaces.DSAPublicKey; +import java.security.interfaces.RSAPrivateKey; +import java.security.interfaces.RSAPublicKey; import java.util.logging.Logger; -import org.xbill.DNS.*; +import org.xbill.DNS.DClass; +import org.xbill.DNS.DNSKEYRecord; +import org.xbill.DNS.DNSSEC; +import org.xbill.DNS.Name; /** * This class forms the basis for representing public/private key pairs in a @@ -33,36 +41,33 @@ import org.xbill.DNS.*; * * JCA == Java Cryptography Architecture. * - * @author David Blacka (orig) - * @author $Author$ (latest) - * @version $Revision$ + * @author David Blacka */ // NOTE: this class is designed to do "lazy" evaluation of it's // various cached objects and format conversions, so methods should // avoid direct access to the member variables. -public class DnsKeyPair -{ +public class DnsKeyPair { /** This is the real (base) encoding of the public key. */ - protected DNSKEYRecord mPublicKeyRecord; + protected DNSKEYRecord mPublicKeyRecord; /** * This is a pre-calculated cache of the DNSKEYRecord converted into a JCA * public key. */ - private PublicKey mPublicKey; + private PublicKey mPublicKey; /** * The private key in Base64 encoded format. This version is presumed to be * opaque, so no attempts will be made to convert it to a JCA private key. */ - protected String mPrivateKeyString; + protected String mPrivateKeyString; /** * The private key in JCA format. This is the base encoding for instances where * JCA private keys are used. */ - protected PrivateKey mPrivateKey; + protected PrivateKey mPrivateKey; /** The local key converter. */ protected DnsKeyConverter mKeyConverter; @@ -70,57 +75,51 @@ public class DnsKeyPair /** * a cached Signature used for signing (initialized with the private key) */ - protected Signature mSigner; + protected Signature mSigner; /** * a caches Signature used for verifying (initialized with the public key) */ - protected Signature mVerifier; + protected Signature mVerifier; - private Logger log; + private Logger log; - public DnsKeyPair() - { + public DnsKeyPair() { log = Logger.getLogger(this.getClass().toString()); } - public DnsKeyPair(DNSKEYRecord keyRecord, PrivateKey privateKey) - { + public DnsKeyPair(DNSKEYRecord keyRecord, PrivateKey privateKey) { this(); setDNSKEYRecord(keyRecord); setPrivate(privateKey); } - public DnsKeyPair(DNSKEYRecord keyRecord, String privateKeyString) - { + public DnsKeyPair(DNSKEYRecord keyRecord, String privateKeyString) { this(); setDNSKEYRecord(keyRecord); setPrivateKeyString(privateKeyString); } - public DnsKeyPair(DNSKEYRecord keyRecord) - { + public DnsKeyPair(DNSKEYRecord keyRecord) { this(); setDNSKEYRecord(keyRecord); setPrivateKeyString(null); } public DnsKeyPair(Name keyName, int algorithm, PublicKey publicKey, - PrivateKey privateKey) - { + PrivateKey privateKey) { this(); DnsKeyConverter conv = new DnsKeyConverter(); DNSKEYRecord keyrec = conv.generateDNSKEYRecord(keyName, DClass.IN, 0, 0, - algorithm, publicKey); + algorithm, publicKey); setDNSKEYRecord(keyrec); setPrivate(privateKey); } - public DnsKeyPair(DnsKeyPair pair) - { + public DnsKeyPair(DnsKeyPair pair) { this(); setDNSKEYRecord(pair.getDNSKEYRecord()); @@ -129,10 +128,8 @@ public class DnsKeyPair } /** @return cached DnsKeyConverter object. */ - protected DnsKeyConverter getKeyConverter() - { - if (mKeyConverter == null) - { + protected DnsKeyConverter getKeyConverter() { + if (mKeyConverter == null) { mKeyConverter = new DnsKeyConverter(); } @@ -140,8 +137,7 @@ public class DnsKeyPair } /** @return the appropriate Signature object for this keypair. */ - protected Signature getSignature() - { + protected Signature getSignature() { DnsKeyAlgorithm algorithms = DnsKeyAlgorithm.getInstance(); return algorithms.getSignature(getDNSKEYAlgorithm()); } @@ -149,17 +145,12 @@ public class DnsKeyPair /** * @return the public key, translated from the KEYRecord, if necessary. */ - public PublicKey getPublic() - { - if (mPublicKey == null && getDNSKEYRecord() != null) - { - try - { + public PublicKey getPublic() { + if (mPublicKey == null && getDNSKEYRecord() != null) { + try { DnsKeyConverter conv = getKeyConverter(); setPublic(conv.parseDNSKEYRecord(getDNSKEYRecord())); - } - catch (NoSuchAlgorithmException e) - { + } catch (NoSuchAlgorithmException e) { log.severe(e.toString()); return null; } @@ -171,18 +162,15 @@ public class DnsKeyPair /** * sets the public key. This method is generally not used directly. */ - protected void setPublic(PublicKey k) - { + protected void setPublic(PublicKey k) { mPublicKey = k; } /** @return the private key. */ - public PrivateKey getPrivate() - { + public PrivateKey getPrivate() { // attempt to convert the private key string format into a JCA // private key. - if (mPrivateKey == null && mPrivateKeyString != null) - { + if (mPrivateKey == null && mPrivateKeyString != null) { mPrivateKey = BINDKeyUtils.convertPrivateKeyString(mPrivateKeyString); } @@ -190,8 +178,7 @@ public class DnsKeyPair } /** sets the private key */ - public void setPrivate(PrivateKey k) - { + public void setPrivate(PrivateKey k) { mPrivateKey = k; } @@ -199,30 +186,27 @@ public class DnsKeyPair * @return the opaque private key string, null if one doesn't exist. * @throws NoSuchAlgorithmException */ - public String getPrivateKeyString() - { - if (mPrivateKeyString == null && mPrivateKey != null) - { + public String getPrivateKeyString() { + if (mPrivateKeyString == null && mPrivateKey != null) { PublicKey pub = getPublic(); mPrivateKeyString = BINDKeyUtils.convertPrivateKey(mPrivateKey, pub, - getDNSKEYAlgorithm()); + getDNSKEYAlgorithm()); } return mPrivateKeyString; } /** sets the opaque private key string. */ - public void setPrivateKeyString(String p) - { + public void setPrivateKeyString(String p) { mPrivateKeyString = p; } /** @return the private key in an encoded form (normally PKCS#8). */ - public byte[] getEncodedPrivate() - { + public byte[] getEncodedPrivate() { PrivateKey priv = getPrivate(); - if (priv != null) return priv.getEncoded(); - return null; + if (priv != null) + return priv.getEncoded(); + return new byte[0]; } /** @@ -230,20 +214,17 @@ public class DnsKeyPair * that the public key already be assigned. Currently it can only handle DSA * and RSA keys. */ - public void setEncodedPrivate(byte[] encoded) - { + public void setEncodedPrivate(byte[] encoded) { int alg = getDNSKEYAlgorithm(); - if (alg >= 0) - { + if (alg >= 0) { DnsKeyConverter conv = getKeyConverter(); setPrivate(conv.convertEncodedPrivateKey(encoded, alg)); } } /** @return the public DNSKEY record */ - public DNSKEYRecord getDNSKEYRecord() - { + public DNSKEYRecord getDNSKEYRecord() { return mPublicKeyRecord; } @@ -251,25 +232,17 @@ public class DnsKeyPair * @return a Signature object initialized for signing, or null if this key * pair does not have a valid private key. */ - public Signature getSigner() - { - if (mSigner == null) - { + public Signature getSigner() { + if (mSigner == null) { mSigner = getSignature(); PrivateKey priv = getPrivate(); - if (mSigner != null && priv != null) - { - try - { + if (mSigner != null && priv != null) { + try { mSigner.initSign(priv); - } - catch (InvalidKeyException e) - { + } catch (InvalidKeyException e) { log.severe("Signature error: " + e); } - } - else - { + } else { // do not return an uninitialized signer. return null; } @@ -283,24 +256,16 @@ public class DnsKeyPair * pair does not have a valid public key. * @throws NoSuchAlgorithmException */ - public Signature getVerifier() - { - if (mVerifier == null) - { + public Signature getVerifier() { + if (mVerifier == null) { mVerifier = getSignature(); PublicKey pk = getPublic(); - if (mVerifier != null && pk != null) - { - try - { + if (mVerifier != null && pk != null) { + try { mVerifier.initVerify(pk); + } catch (InvalidKeyException e) { } - catch (InvalidKeyException e) - { - } - } - else - { + } else { // do not return an uninitialized verifier return null; } @@ -310,47 +275,48 @@ public class DnsKeyPair } /** sets the public key record */ - public void setDNSKEYRecord(DNSKEYRecord r) - { + public void setDNSKEYRecord(DNSKEYRecord r) { mPublicKeyRecord = r; // force the conversion to PublicKey: mPublicKey = null; } - public Name getDNSKEYName() - { + public Name getDNSKEYName() { DNSKEYRecord kr = getDNSKEYRecord(); - if (kr != null) return kr.getName(); + if (kr != null) + return kr.getName(); return null; } - public int getDNSKEYAlgorithm() - { + public int getDNSKEYAlgorithm() { DNSKEYRecord kr = getDNSKEYRecord(); - if (kr != null) return kr.getAlgorithm(); + if (kr != null) + return kr.getAlgorithm(); PublicKey pk = getPublic(); - if (pk != null) - { + if (pk != null) { // currently, alg 5 is the default over alg 1 (RSASHA1). - if (pk instanceof RSAPublicKey) return DNSSEC.Algorithm.RSASHA1; - if (pk instanceof DSAPublicKey) return DNSSEC.Algorithm.DSA; + if (pk instanceof RSAPublicKey) + return DNSSEC.Algorithm.RSASHA1; + if (pk instanceof DSAPublicKey) + return DNSSEC.Algorithm.DSA; } PrivateKey priv = getPrivate(); - if (priv != null) - { - if (priv instanceof RSAPrivateKey) return DNSSEC.Algorithm.RSASHA1; - if (priv instanceof DSAPrivateKey) return DNSSEC.Algorithm.DSA; + if (priv != null) { + if (priv instanceof RSAPrivateKey) + return DNSSEC.Algorithm.RSASHA1; + if (priv instanceof DSAPrivateKey) + return DNSSEC.Algorithm.DSA; } return -1; } - public int getDNSKEYFootprint() - { + public int getDNSKEYFootprint() { DNSKEYRecord kr = getDNSKEYRecord(); - if (kr != null) return kr.getFootprint(); + if (kr != null) + return kr.getFootprint(); return -1; } } diff --git a/src/main/java/com/verisignlabs/dnssec/security/DnsSecVerifier.java b/src/main/java/com/verisignlabs/dnssec/security/DnsSecVerifier.java index 150a068..1a9994e 100644 --- a/src/main/java/com/verisignlabs/dnssec/security/DnsSecVerifier.java +++ b/src/main/java/com/verisignlabs/dnssec/security/DnsSecVerifier.java @@ -1,6 +1,4 @@ -// $Id$ -// -// Copyright (C) 2001-2003 VeriSign, Inc. +// Copyright (C) 2001-2003, 2022 VeriSign, Inc. // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public @@ -24,14 +22,17 @@ import java.security.GeneralSecurityException; import java.security.PrivateKey; import java.security.PublicKey; import java.security.Signature; +import java.time.Instant; import java.util.ArrayList; -import java.util.Date; import java.util.HashMap; -import java.util.Iterator; import java.util.List; import java.util.logging.Logger; -import org.xbill.DNS.*; +import org.xbill.DNS.DNSKEYRecord; +import org.xbill.DNS.DNSSEC; +import org.xbill.DNS.Name; +import org.xbill.DNS.RRSIGRecord; +import org.xbill.DNS.RRset; /** * A class for performing basic DNSSEC verification. The DNSJAVA package @@ -39,62 +40,46 @@ import org.xbill.DNS.*; * timing "fudge" factors and logging more specifically why an RRset did not * validate. * - * @author David Blacka (original) - * @author $Author$ - * @version $Revision$ + * @author David Blacka */ -public class DnsSecVerifier -{ +public class DnsSecVerifier { - private class TrustedKeyStore - { + private class TrustedKeyStore { // for now, this is implemented as a hash table of lists of // DnsKeyPair objects (obviously, all of them will not have // private keys). private HashMap> mKeyMap; - public TrustedKeyStore() - { - mKeyMap = new HashMap>(); + public TrustedKeyStore() { + mKeyMap = new HashMap<>(); } - public void add(DnsKeyPair pair) - { + public void add(DnsKeyPair pair) { String n = pair.getDNSKEYName().toString().toLowerCase(); - List l = mKeyMap.get(n); - if (l == null) - { - l = new ArrayList(); - mKeyMap.put(n, l); - } - + List l = mKeyMap.computeIfAbsent(n, k -> new ArrayList<>()); l.add(pair); } - public void add(DNSKEYRecord keyrec) - { + public void add(DNSKEYRecord keyrec) { DnsKeyPair pair = new DnsKeyPair(keyrec, (PrivateKey) null); add(pair); } - public void add(Name name, int algorithm, PublicKey key) - { + public void add(Name name, int algorithm, PublicKey key) { DnsKeyPair pair = new DnsKeyPair(name, algorithm, key, null); add(pair); } - public DnsKeyPair find(Name name, int algorithm, int keyid) - { + public DnsKeyPair find(Name name, int algorithm, int keyid) { String n = name.toString().toLowerCase(); List l = mKeyMap.get(n); - if (l == null) return null; + if (l == null) + return null; // FIXME: this algorithm assumes that name+alg+footprint is // unique, which isn't necessarily true. - for (DnsKeyPair p : l) - { - if (p.getDNSKEYAlgorithm() == algorithm && p.getDNSKEYFootprint() == keyid) - { + for (DnsKeyPair p : l) { + if (p.getDNSKEYAlgorithm() == algorithm && p.getDNSKEYFootprint() == keyid) { return p; } } @@ -103,126 +88,112 @@ public class DnsSecVerifier } private TrustedKeyStore mKeyStore; - private int mStartFudge = 0; - private int mExpireFudge = 0; - private boolean mVerifyAllSigs = false; - private boolean mIgnoreTime = false; + private int mStartFudge = 0; + private int mExpireFudge = 0; + private boolean mVerifyAllSigs = false; + private boolean mIgnoreTime = false; - private Logger log; + private Logger log; - public DnsSecVerifier() - { + public DnsSecVerifier() { log = Logger.getLogger(this.getClass().toString()); mKeyStore = new TrustedKeyStore(); } - public void addTrustedKey(DNSKEYRecord keyrec) - { + public void addTrustedKey(DNSKEYRecord keyrec) { mKeyStore.add(keyrec); } - public void addTrustedKey(DnsKeyPair pair) - { + public void addTrustedKey(DnsKeyPair pair) { mKeyStore.add(pair); } - public void addTrustedKey(Name name, int algorithm, PublicKey key) - { + public void addTrustedKey(Name name, int algorithm, PublicKey key) { mKeyStore.add(name, algorithm, key); } - public void addTrustedKey(Name name, PublicKey key) - { + public void addTrustedKey(Name name, PublicKey key) { mKeyStore.add(name, 0, key); } - public void setExpireFudge(int fudge) - { + public void setExpireFudge(int fudge) { mExpireFudge = fudge; } - public void setStartFudge(int fudge) - { + public void setStartFudge(int fudge) { mStartFudge = fudge; } - public void setVerifyAllSigs(boolean v) - { + public void setVerifyAllSigs(boolean v) { mVerifyAllSigs = v; } - public void setIgnoreTime(boolean v) - { + public void setIgnoreTime(boolean v) { mIgnoreTime = v; } - private DnsKeyPair findKey(Name name, int algorithm, int footprint) - { + private DnsKeyPair findKey(Name name, int algorithm, int footprint) { return mKeyStore.find(name, algorithm, footprint); } - private boolean validateSignature(RRset rrset, RRSIGRecord sigrec, List reasons) - { - if (rrset == null || sigrec == null) return false; - if (!rrset.getName().equals(sigrec.getName())) - { + private boolean validateSignature(RRset rrset, RRSIGRecord sigrec, List reasons) { + if (rrset == null || sigrec == null) + return false; + if (!rrset.getName().equals(sigrec.getName())) { log.fine("Signature name does not match RRset name"); - if (reasons != null) reasons.add("Signature name does not match RRset name"); + if (reasons != null) + reasons.add("Signature name does not match RRset name"); return false; } - if (rrset.getType() != sigrec.getTypeCovered()) - { + if (rrset.getType() != sigrec.getTypeCovered()) { log.fine("Signature type does not match RRset type"); - if (reasons != null) reasons.add("Signature type does not match RRset type"); + if (reasons != null) + reasons.add("Signature type does not match RRset type"); } - if (mIgnoreTime) return true; + if (mIgnoreTime) + return true; - Date now = new Date(); - Date start = sigrec.getTimeSigned(); - Date expire = sigrec.getExpire(); + Instant now = Instant.now(); + Instant start = sigrec.getTimeSigned(); + Instant expire = sigrec.getExpire(); - if (mStartFudge >= 0) - { - if (mStartFudge > 0) - { - start = new Date(start.getTime() - ((long) mStartFudge * 1000)); + if (mStartFudge >= 0) { + if (mStartFudge > 0) { + start = start.minusSeconds(mStartFudge); } - if (now.before(start)) - { + if (now.isBefore(start)) { log.fine("Signature is not yet valid"); - if (reasons != null) reasons.add("Signature not yet valid"); + if (reasons != null) + reasons.add("Signature not yet valid"); return false; } } - if (mExpireFudge >= 0) - { - if (mExpireFudge > 0) - { - expire = new Date(expire.getTime() + ((long) mExpireFudge * 1000)); + if (mExpireFudge >= 0) { + if (mExpireFudge > 0) { + expire = expire.plusSeconds(mExpireFudge); } - if (now.after(expire)) - { + if (now.isAfter(expire)) { log.fine("Signature has expired (now = " + now + ", sig expires = " + expire); - if (reasons != null) reasons.add("Signature has expired."); + if (reasons != null) + reasons.add("Signature has expired."); return false; } } - if (rrset.getTTL() > sigrec.getOrigTTL()) - { + if (rrset.getTTL() > sigrec.getOrigTTL()) { log.fine("RRset's TTL is greater than the Signature's orignal TTL"); - if (reasons != null) reasons.add("RRset TTL greater than RRSIG origTTL"); + if (reasons != null) + reasons.add("RRset TTL greater than RRSIG origTTL"); return false; } return true; } - public boolean verifySignature(RRset rrset, RRSIGRecord sigrec) - { + public boolean verifySignature(RRset rrset, RRSIGRecord sigrec) { return verifySignature(rrset, sigrec, null); } @@ -232,23 +203,22 @@ public class DnsSecVerifier * @return true if the signature verified, false if it did * not verify (for any reason, including not finding the DNSKEY.) */ - public boolean verifySignature(RRset rrset, RRSIGRecord sigrec, List reasons) - { + public boolean verifySignature(RRset rrset, RRSIGRecord sigrec, List reasons) { boolean result = validateSignature(rrset, sigrec, reasons); - if (!result) return result; + if (!result) + return result; DnsKeyPair keypair = findKey(sigrec.getSigner(), sigrec.getAlgorithm(), - sigrec.getFootprint()); + sigrec.getFootprint()); - if (keypair == null) - { - if (reasons != null) reasons.add("Could not find matching trusted key"); + if (keypair == null) { + if (reasons != null) + reasons.add("Could not find matching trusted key"); log.fine("could not find matching trusted key"); return false; } - try - { + try { byte[] data = SignUtils.generateSigData(rrset, sigrec); DnsKeyAlgorithm algs = DnsKeyAlgorithm.getInstance(); @@ -258,35 +228,30 @@ public class DnsSecVerifier byte[] sig = sigrec.getSignature(); - if (algs.baseType(sigrec.getAlgorithm()) == DnsKeyAlgorithm.DSA) - { + if (algs.baseType(sigrec.getAlgorithm()) == DnsKeyAlgorithm.DSA) { sig = SignUtils.convertDSASignature(sig); } - if (sigrec.getAlgorithm() == DNSSEC.Algorithm.ECDSAP256SHA256 || - sigrec.getAlgorithm() == DNSSEC.Algorithm.ECDSAP384SHA384) - { + if (sigrec.getAlgorithm() == DNSSEC.Algorithm.ECDSAP256SHA256 || + sigrec.getAlgorithm() == DNSSEC.Algorithm.ECDSAP384SHA384) { sig = SignUtils.convertECDSASignature(sig); } - if (!signer.verify(sig)) - { - if (reasons != null) reasons.add("Signature failed to verify cryptographically"); + if (!signer.verify(sig)) { + if (reasons != null) + reasons.add("Signature failed to verify cryptographically"); log.fine("Signature failed to verify cryptographically"); return false; } return true; - } - catch (IOException e) - { + } catch (IOException e) { log.severe("I/O error: " + e); - } - catch (GeneralSecurityException e) - { + } catch (GeneralSecurityException e) { log.severe("Security error: " + e); } - if (reasons != null) reasons.add("Signature failed to verify due to exception"); + if (reasons != null) + reasons.add("Signature failed to verify due to exception"); log.fine("Signature failed to verify due to exception"); return false; } @@ -296,30 +261,24 @@ public class DnsSecVerifier * * @return true if the set verified, false if it did not. */ - public boolean verify(RRset rrset) - { + public boolean verify(RRset rrset) { boolean result = mVerifyAllSigs ? true : false; - Iterator i = rrset.sigs(); - - if (!i.hasNext()) - { + if (rrset.sigs().isEmpty()) { log.fine("RRset failed to verify due to lack of signatures"); return false; } - - while (i.hasNext()) - { - RRSIGRecord sigrec = (RRSIGRecord) i.next(); + for (RRSIGRecord sigrec : rrset.sigs()) { boolean res = verifySignature(rrset, sigrec); - // If not requiring all signature to validate, then any successful validation is sufficient. - if (!mVerifyAllSigs && res) return res; + // If not requiring all signature to validate, then any successful validation is + // sufficient. + if (!mVerifyAllSigs && res) + return res; // Otherwise, note if a signature failed to validate. - if (mVerifyAllSigs && !res) - { + if (mVerifyAllSigs && !res) { result = res; } } diff --git a/src/main/java/com/verisignlabs/dnssec/security/JCEDnsSecSigner.java b/src/main/java/com/verisignlabs/dnssec/security/JCEDnsSecSigner.java index ebf5dc6..34b36b8 100644 --- a/src/main/java/com/verisignlabs/dnssec/security/JCEDnsSecSigner.java +++ b/src/main/java/com/verisignlabs/dnssec/security/JCEDnsSecSigner.java @@ -1,6 +1,4 @@ -// $Id$ -// -// Copyright (C) 2001-2003, 2009 VeriSign, Inc. +// Copyright (C) 2001-2003, 2009, 2022 Verisign, Inc. // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public @@ -25,15 +23,20 @@ import java.security.KeyPair; import java.security.NoSuchAlgorithmException; import java.security.Signature; import java.security.interfaces.DSAPublicKey; +import java.time.Instant; import java.util.ArrayList; import java.util.Collections; -import java.util.Date; -import java.util.Iterator; import java.util.List; import java.util.ListIterator; import java.util.logging.Logger; -import org.xbill.DNS.*; +import org.xbill.DNS.DNSKEYRecord; +import org.xbill.DNS.DNSSEC; +import org.xbill.DNS.Name; +import org.xbill.DNS.RRSIGRecord; +import org.xbill.DNS.RRset; +import org.xbill.DNS.Record; +import org.xbill.DNS.Type; import org.xbill.DNS.utils.hexdump; /** @@ -43,26 +46,21 @@ import org.xbill.DNS.utils.hexdump; * the ability to sign an entire zone. It primarily glues together the more * basic primitives found in {@link SignUtils}. * - * @author David Blacka (original) - * @author $Author$ - * @version $Revision$ + * @author David Blacka */ -public class JCEDnsSecSigner -{ +public class JCEDnsSecSigner { private DnsKeyConverter mKeyConverter; - private boolean mVerboseSigning = false; + private boolean mVerboseSigning = false; - private Logger log = Logger.getLogger(this.getClass().toString()); + private Logger log = Logger.getLogger(this.getClass().toString()); - public JCEDnsSecSigner() - { + public JCEDnsSecSigner() { this.mKeyConverter = null; this.mVerboseSigning = false; } - public JCEDnsSecSigner(boolean verboseSigning) - { + public JCEDnsSecSigner(boolean verboseSigning) { this.mKeyConverter = null; this.mVerboseSigning = verboseSigning; } @@ -71,38 +69,38 @@ public class JCEDnsSecSigner * Cryptographically generate a new DNSSEC key. * * @param owner - * the KEY RR's owner name. + * the KEY RR's owner name. * @param ttl - * the KEY RR's TTL. + * the KEY RR's TTL. * @param dclass - * the KEY RR's DNS class. + * the KEY RR's DNS class. * @param algorithm - * the DNSSEC algorithm (RSAMD5, RSASHA1, or DSA). + * the DNSSEC algorithm (RSASHA258, RSASHA512, + * ECDSAP256, etc.) * @param flags - * any flags for the KEY RR. + * any flags for the KEY RR. * @param keysize - * the size of the key to generate. + * the size of the key to generate. * @param useLargeExponent - * if generating an RSA key, use the large exponent. + * if generating an RSA key, use the large exponent. * @return a DnsKeyPair with the public and private keys populated. */ public DnsKeyPair generateKey(Name owner, long ttl, int dclass, int algorithm, - int flags, int keysize, boolean useLargeExponent) - throws NoSuchAlgorithmException - { + int flags, int keysize, boolean useLargeExponent) + throws NoSuchAlgorithmException { DnsKeyAlgorithm algorithms = DnsKeyAlgorithm.getInstance(); - if (ttl < 0) ttl = 86400; // set to a reasonable default. + if (ttl < 0) + ttl = 86400; // set to a reasonable default. KeyPair pair = algorithms.generateKeyPair(algorithm, keysize, useLargeExponent); - if (mKeyConverter == null) - { + if (mKeyConverter == null) { mKeyConverter = new DnsKeyConverter(); } DNSKEYRecord keyrec = mKeyConverter.generateDNSKEYRecord(owner, dclass, ttl, flags, - algorithm, pair.getPublic()); + algorithm, pair.getPublic()); DnsKeyPair dnspair = new DnsKeyPair(); dnspair.setDNSKEYRecord(keyrec); @@ -116,28 +114,30 @@ public class JCEDnsSecSigner * Sign an RRset. * * @param rrset - * the RRset to sign -- any existing signatures are ignored. + * the RRset to sign -- any existing signatures are ignored. * @param keypars - * a list of DnsKeyPair objects containing private keys. + * a list of DnsKeyPair objects containing private keys. * @param start - * the inception time for the resulting RRSIG records. + * the inception time for the resulting RRSIG records. * @param expire - * the expiration time for the resulting RRSIG records. + * the expiration time for the resulting RRSIG records. * @return a list of RRSIGRecord objects. */ - public List signRRset(RRset rrset, List keypairs, Date start, - Date expire) throws IOException, - GeneralSecurityException - { - if (rrset == null || keypairs == null) return null; + public List signRRset(RRset rrset, List keypairs, Instant start, + Instant expire) throws IOException, + GeneralSecurityException { + if (rrset == null || keypairs == null) + return null; // default start to now, expire to start + 1 second. - if (start == null) start = new Date(); - if (expire == null) expire = new Date(start.getTime() + 1000L); - if (keypairs.size() == 0) return null; + if (start == null) + start = Instant.now(); + if (expire == null) + expire = start.plusSeconds(1); + if (keypairs.size() == 0) + return null; - if (mVerboseSigning) - { + if (mVerboseSigning) { log.info("Signing RRset:"); log.info(ZoneUtils.rrsetToString(rrset, false)); } @@ -148,17 +148,16 @@ public class JCEDnsSecSigner ArrayList sigs = new ArrayList(keypairs.size()); // for each keypair, sign the RRset. - for (DnsKeyPair pair : keypairs) - { + for (DnsKeyPair pair : keypairs) { DNSKEYRecord keyrec = pair.getDNSKEYRecord(); - if (keyrec == null) continue; + if (keyrec == null) + continue; RRSIGRecord presig = SignUtils.generatePreRRSIG(rrset, keyrec, start, expire, - rrset.getTTL()); + rrset.getTTL()); byte[] sign_data = SignUtils.generateSigData(rrset_data, presig); - if (mVerboseSigning) - { + if (mVerboseSigning) { log.info("Canonical pre-signature data to sign with key " + keyrec.getName().toString() + "/" + keyrec.getAlgorithm() + "/" + keyrec.getFootprint() + ":"); @@ -167,8 +166,7 @@ public class JCEDnsSecSigner Signature signer = pair.getSigner(); - if (signer == null) - { + if (signer == null) { // debug log.fine("missing private key that goes with:\n" + pair.getDNSKEYRecord()); throw new GeneralSecurityException("cannot sign without a valid Signer " @@ -179,28 +177,24 @@ public class JCEDnsSecSigner signer.update(sign_data); byte[] sig = signer.sign(); - if (mVerboseSigning) - { + if (mVerboseSigning) { log.info("Raw Signature:"); log.info(hexdump.dump(null, sig)); } DnsKeyAlgorithm algs = DnsKeyAlgorithm.getInstance(); // Convert to RFC 2536 format, if necessary. - if (algs.baseType(pair.getDNSKEYAlgorithm()) == DnsKeyAlgorithm.DSA) - { + if (algs.baseType(pair.getDNSKEYAlgorithm()) == DnsKeyAlgorithm.DSA) { DSAPublicKey pk = (DSAPublicKey) pair.getPublic(); sig = SignUtils.convertDSASignature(pk.getParams(), sig); } // Convert to RFC 6605, etc format if (pair.getDNSKEYAlgorithm() == DNSSEC.Algorithm.ECDSAP256SHA256 || - pair.getDNSKEYAlgorithm() == DNSSEC.Algorithm.ECDSAP384SHA384) - { + pair.getDNSKEYAlgorithm() == DNSSEC.Algorithm.ECDSAP384SHA384) { sig = SignUtils.convertECDSASignature(pair.getDNSKEYAlgorithm(), sig); } RRSIGRecord sigrec = SignUtils.generateRRSIG(sig, presig); - if (mVerboseSigning) - { + if (mVerboseSigning) { log.info("RRSIG:\n" + sigrec); } sigs.add(sigrec); @@ -213,29 +207,26 @@ public class JCEDnsSecSigner * Create a completely self-signed DNSKEY RRset. * * @param keypairs - * the public & private keypairs to use in the keyset. + * the public & private keypairs to use in the keyset. * @param start - * the RRSIG inception time. + * the RRSIG inception time. * @param expire - * the RRSIG expiration time. + * the RRSIG expiration time. * @return a signed RRset. */ - public RRset makeKeySet(List keypairs, Date start, Date expire) - throws IOException, GeneralSecurityException - { + public RRset makeKeySet(List keypairs, Instant start, Instant expire) + throws IOException, GeneralSecurityException { // Generate a KEY RR set to sign. RRset keyset = new RRset(); - for (DnsKeyPair pair : keypairs) - { + for (DnsKeyPair pair : keypairs) { keyset.addRR(pair.getDNSKEYRecord()); } List records = signRRset(keyset, keypairs, start, expire); - for (RRSIGRecord r : records) - { + for (RRSIGRecord r : records) { keyset.addRR(r); } @@ -246,63 +237,58 @@ public class JCEDnsSecSigner * Conditionally sign an RRset and add it to the toList. * * @param toList - * the list to which we are adding the processed RRsets. + * the list to which we are adding the processed RRsets. * @param zonename - * the zone apex name. + * the zone apex name. * @param rrset - * the RRset under consideration. + * the RRset under consideration. * @param kskpairs - * the List of KSKs.. + * the List of KSKs.. * @param zskpairs - * the List of zone keys. + * the List of zone keys. * @param start - * the RRSIG inception time. + * the RRSIG inception time. * @param expire - * the RRSIG expiration time. + * the RRSIG expiration time. * @param fullySignKeyset - * if true, sign the zone apex keyset with both KSKs and ZSKs. + * if true, sign the zone apex keyset with both KSKs and + * ZSKs. * @param last_cut - * the name of the last delegation point encountered. + * the name of the last delegation point encountered. * * @return the name of the new last_cut. */ - @SuppressWarnings("unchecked") private Name addRRset(List toList, Name zonename, RRset rrset, - List kskpairs, List zskpairs, Date start, - Date expire, boolean fullySignKeyset, Name last_cut, - Name last_dname) throws IOException, GeneralSecurityException - { + List kskpairs, List zskpairs, Instant start, + Instant expire, boolean fullySignKeyset, Name last_cut, + Name last_dname) throws IOException, GeneralSecurityException { // add the records themselves - for (Iterator i = rrset.rrs(); i.hasNext();) - { - toList.add(i.next()); - } + rrset.rrs().forEach(record -> { + toList.add(record); + }); int type = SignUtils.recordSecType(zonename, rrset.getName(), rrset.getType(), - last_cut, last_dname); + last_cut, last_dname); // we don't sign non-normal sets (delegations, glue, invalid). - if (type == SignUtils.RR_DELEGATION) - { + if (type == SignUtils.RR_DELEGATION) { return rrset.getName(); } - if (type == SignUtils.RR_GLUE || type == SignUtils.RR_INVALID) - { + if (type == SignUtils.RR_GLUE || type == SignUtils.RR_INVALID) { return last_cut; } // check for the zone apex keyset. - if (rrset.getName().equals(zonename) && rrset.getType() == Type.DNSKEY) - { + if (rrset.getName().equals(zonename) && rrset.getType() == Type.DNSKEY) { // if we have ksks, sign the keyset with them, otherwise we will just sign // them with the zsks. - if (kskpairs != null && kskpairs.size() > 0) - { + if (kskpairs != null && kskpairs.size() > 0) { List sigs = signRRset(rrset, kskpairs, start, expire); toList.addAll(sigs); // If we aren't going to sign with all the keys, bail out now. - if (!fullySignKeyset) return last_cut; + if (!fullySignKeyset) + return last_cut; } } @@ -314,10 +300,10 @@ public class JCEDnsSecSigner } // Various NSEC/NSEC3 generation modes - private static final int NSEC_MODE = 0; - private static final int NSEC3_MODE = 1; + private static final int NSEC_MODE = 0; + private static final int NSEC3_MODE = 1; private static final int NSEC3_OPTOUT_MODE = 2; - private static final int NSEC_EXP_OPT_IN = 3; + private static final int NSEC_EXP_OPT_IN = 3; /** * Master zone signing method. This method handles all of the different zone @@ -326,41 +312,48 @@ public class JCEDnsSecSigner * appropriate public signZone* methods instead of this. * * @param zonename - * The name of the zone + * The name of the zone * @param records - * The records comprising the zone. They do not have to be in any - * particular order, as this method will order them as necessary. + * The records comprising the zone. They do not have to + * be in any + * particular order, as this method will order them as + * necessary. * @param kskpairs - * The key pairs designated as "key signing keys" + * The key pairs designated as "key signing keys" * @param zskpairs - * The key pairs designated as "zone signing keys" + * The key pairs designated as "zone signing keys" * @param start - * The RRSIG inception time + * The RRSIG inception time * @param expire - * The RRSIG expiration time + * The RRSIG expiration time * @param fullySignKeyset - * If true, all keys (ksk or zsk) will sign the DNSKEY RRset. If - * false, only the ksks will sign it. + * If true, all keys (ksk or zsk) will sign the DNSKEY + * RRset. If + * false, only the ksks will sign it. * @param ds_digest_alg - * The hash algorithm to use for generating DS records - * (DSRecord.SHA1_DIGEST_ID, e.g.) + * The hash algorithm to use for generating DS records + * (DSRecord.SHA1_DIGEST_ID, e.g.) * @param mode - * The NSEC/NSEC3 generation mode: NSEC_MODE, NSEC3_MODE, - * NSEC3_OPTOUT_MODE, etc. + * The NSEC/NSEC3 generation mode: NSEC_MODE, NSEC3_MODE, + * NSEC3_OPTOUT_MODE, etc. * @param includedNames - * When using an Opt-In/Opt-Out mode, the names listed here will be - * included in the NSEC/NSEC3 chain regardless + * When using an Opt-In/Opt-Out mode, the names listed + * here will be + * included in the NSEC/NSEC3 chain regardless * @param salt - * When using an NSEC3 mode, use this salt. + * When using an NSEC3 mode, use this salt. * @param iterations - * When using an NSEC3 mode, use this number of iterations + * When using an NSEC3 mode, use this number of + * iterations * @param beConservative - * If true, then only turn on the Opt-In flag when there are insecure - * delegations in the span. Currently this only works for - * NSEC_EXP_OPT_IN mode. + * If true, then only turn on the Opt-In flag when there + * are insecure + * delegations in the span. Currently this only works for + * NSEC_EXP_OPT_IN mode. * @param nsec3paramttl - * The TTL to use for the generated NSEC3PARAM record. Negative - * values will use the SOA TTL. + * The TTL to use for the generated NSEC3PARAM record. + * Negative + * values will use the SOA TTL. * @return an ordered list of {@link org.xbill.DNS.Record} objects, * representing the signed zone. * @@ -368,13 +361,12 @@ public class JCEDnsSecSigner * @throws GeneralSecurityException */ private List signZone(Name zonename, List records, - List kskpairs, List zskpairs, - Date start, Date expire, boolean fullySignKeyset, - int ds_digest_alg, int mode, List includedNames, - byte[] salt, int iterations, long nsec3paramttl, - boolean beConservative) throws IOException, - GeneralSecurityException - { + List kskpairs, List zskpairs, + Instant start, Instant expire, boolean fullySignKeyset, + int ds_digest_alg, int mode, List includedNames, + byte[] salt, int iterations, long nsec3paramttl, + boolean beConservative) throws IOException, + GeneralSecurityException { // Remove any existing generated DNSSEC records (NSEC, NSEC3, NSEC3PARAM, // RRSIG) SignUtils.removeGeneratedRecords(zonename, records); @@ -391,8 +383,7 @@ public class JCEDnsSecSigner SignUtils.generateDSRecords(zonename, records, ds_digest_alg); // Generate the NSEC or NSEC3 records based on 'mode' - switch (mode) - { + switch (mode) { case NSEC_MODE: SignUtils.generateNSECRecords(zonename, records); break; @@ -401,11 +392,11 @@ public class JCEDnsSecSigner break; case NSEC3_OPTOUT_MODE: SignUtils.generateOptOutNSEC3Records(zonename, records, includedNames, salt, - iterations, nsec3paramttl); + iterations, nsec3paramttl); break; case NSEC_EXP_OPT_IN: SignUtils.generateOptInNSECRecords(zonename, records, includedNames, - beConservative); + beConservative); break; } @@ -418,21 +409,18 @@ public class JCEDnsSecSigner Name last_cut = null; Name last_dname = null; - for (ListIterator i = records.listIterator(); i.hasNext();) - { + for (ListIterator i = records.listIterator(); i.hasNext();) { Record r = i.next(); // First record - if (rrset.size() == 0) - { + if (rrset.size() == 0) { rrset.addRR(r); continue; } // Current record is part of the current RRset. if (rrset.getName().equals(r.getName()) && rrset.getDClass() == r.getDClass() - && rrset.getType() == r.getType()) - { + && rrset.getType() == r.getType()) { rrset.addRR(r); continue; } @@ -443,8 +431,9 @@ public class JCEDnsSecSigner // add the RRset to the list of signed_records, regardless of // whether or not we actually end up signing the set. last_cut = addRRset(signed_records, zonename, rrset, kskpairs, zskpairs, start, - expire, fullySignKeyset, last_cut, last_dname); - if (rrset.getType() == Type.DNAME) last_dname = rrset.getName(); + expire, fullySignKeyset, last_cut, last_dname); + if (rrset.getType() == Type.DNAME) + last_dname = rrset.getName(); rrset.clear(); rrset.addRR(r); @@ -452,7 +441,7 @@ public class JCEDnsSecSigner // add the last RR set addRRset(signed_records, zonename, rrset, kskpairs, zskpairs, start, expire, - fullySignKeyset, last_cut, last_dname); + fullySignKeyset, last_cut, last_dname); return signed_records; } @@ -461,72 +450,88 @@ public class JCEDnsSecSigner * Given a zone, sign it using standard NSEC records. * * @param zonename - * The name of the zone. + * The name of the zone. * @param records - * The records comprising the zone. They do not have to be in any - * particular order, as this method will order them as necessary. + * The records comprising the zone. They do not have to + * be in any + * particular order, as this method will order them as + * necessary. * @param kskpairs - * The key pairs that are designated as "key signing keys". + * The key pairs that are designated as "key signing + * keys". * @param zskpairs - * This key pairs that are designated as "zone signing keys". + * This key pairs that are designated as "zone signing + * keys". * @param start - * The RRSIG inception time. + * The RRSIG inception time. * @param expire - * The RRSIG expiration time. + * The RRSIG expiration time. * @param fullySignKeyset - * Sign the zone apex keyset with all available keys (instead of just - * the key signing keys). + * Sign the zone apex keyset with all available keys + * (instead of just + * the key signing keys). * @param ds_digest_alg - * The digest algorithm to use when generating DS records. + * The digest algorithm to use when generating DS + * records. * * @return an ordered list of {@link org.xbill.DNS.Record} objects, * representing the signed zone. */ public List signZone(Name zonename, List records, - List kskpairs, List zskpairs, - Date start, Date expire, boolean fullySignKeyset, - int ds_digest_alg) throws IOException, - GeneralSecurityException - { + List kskpairs, List zskpairs, + Instant start, Instant expire, boolean fullySignKeyset, + int ds_digest_alg) throws IOException, + GeneralSecurityException { return signZone(zonename, records, kskpairs, zskpairs, start, expire, - fullySignKeyset, ds_digest_alg, NSEC_MODE, null, null, 0, 0, false); + fullySignKeyset, ds_digest_alg, NSEC_MODE, null, null, 0, 0, false); } /** * Given a zone, sign it using NSEC3 records. * * @param signer - * A signer (utility) object used to actually sign stuff. + * A signer (utility) object used to actually sign stuff. * @param zonename - * The name of the zone being signed. + * The name of the zone being signed. * @param records - * The records comprising the zone. They do not have to be in any - * particular order, as this method will order them as necessary. + * The records comprising the zone. They do not have to + * be in any + * particular order, as this method will order them as + * necessary. * @param kskpairs - * The key pairs that are designated as "key signing keys". + * The key pairs that are designated as "key signing + * keys". * @param zskpairs - * This key pairs that are designated as "zone signing keys". + * This key pairs that are designated as "zone signing + * keys". * @param start - * The RRSIG inception time. + * The RRSIG inception time. * @param expire - * The RRSIG expiration time. + * The RRSIG expiration time. * @param fullySignKeyset - * If true then the DNSKEY RRset will be signed by all available - * keys, if false, only the key signing keys. + * If true then the DNSKEY RRset will be signed by all + * available + * keys, if false, only the key signing keys. * @param useOptOut - * If true, insecure delegations will be omitted from the NSEC3 - * chain, and all NSEC3 records will have the Opt-Out flag set. + * If true, insecure delegations will be omitted from the + * NSEC3 + * chain, and all NSEC3 records will have the Opt-Out + * flag set. * @param includedNames - * A list of names to include in the NSEC3 chain regardless. + * A list of names to include in the NSEC3 chain + * regardless. * @param salt - * The salt to use for the NSEC3 hashing. null means no salt. + * The salt to use for the NSEC3 hashing. null means no + * salt. * @param iterations - * The number of iterations to use for the NSEC3 hashing. + * The number of iterations to use for the NSEC3 hashing. * @param ds_digest_alg - * The digest algorithm to use when generating DS records. + * The digest algorithm to use when generating DS + * records. * @param nsec3paramttl - * The TTL to use for the generated NSEC3PARAM record. Negative - * values will use the SOA TTL. + * The TTL to use for the generated NSEC3PARAM record. + * Negative + * values will use the SOA TTL. * @return an ordered list of {@link org.xbill.DNS.Record} objects, * representing the signed zone. * @@ -534,24 +539,20 @@ public class JCEDnsSecSigner * @throws GeneralSecurityException */ public List signZoneNSEC3(Name zonename, List records, - List kskpairs, List zskpairs, - Date start, Date expire, boolean fullySignKeyset, - boolean useOptOut, List includedNames, - byte[] salt, int iterations, int ds_digest_alg, - long nsec3paramttl) throws IOException, - GeneralSecurityException - { - if (useOptOut) - { + List kskpairs, List zskpairs, + Instant start, Instant expire, boolean fullySignKeyset, + boolean useOptOut, List includedNames, + byte[] salt, int iterations, int ds_digest_alg, + long nsec3paramttl) throws IOException, + GeneralSecurityException { + if (useOptOut) { return signZone(zonename, records, kskpairs, zskpairs, start, expire, - fullySignKeyset, ds_digest_alg, NSEC3_OPTOUT_MODE, includedNames, - salt, iterations, nsec3paramttl, false); - } - else - { + fullySignKeyset, ds_digest_alg, NSEC3_OPTOUT_MODE, includedNames, + salt, iterations, nsec3paramttl, false); + } else { return signZone(zonename, records, kskpairs, zskpairs, start, expire, - fullySignKeyset, ds_digest_alg, NSEC3_MODE, null, salt, iterations, - nsec3paramttl, false); + fullySignKeyset, ds_digest_alg, NSEC3_MODE, null, salt, iterations, + nsec3paramttl, false); } } @@ -560,42 +561,49 @@ public class JCEDnsSecSigner * 4956). * * @param zonename - * the name of the zone. + * the name of the zone. * @param records - * the records comprising the zone. They do not have to be in any - * particular order, as this method will order them as necessary. + * the records comprising the zone. They do not have + * to be in any + * particular order, as this method will order them + * as necessary. * @param kskpairs - * the key pairs that are designated as "key signing keys". + * the key pairs that are designated as "key signing + * keys". * @param zskpairs - * this key pairs that are designated as "zone signing keys". + * this key pairs that are designated as "zone + * signing keys". * @param start - * the RRSIG inception time. + * the RRSIG inception time. * @param expire - * the RRSIG expiration time. + * the RRSIG expiration time. * @param useConservativeOptIn - * if true, Opt-In NSEC records will only be generated if there are - * insecure, unsigned delegations in the span. + * if true, Opt-In NSEC records will only be + * generated if there are + * insecure, unsigned delegations in the span. * @param fullySignKeyset - * sign the zone apex keyset with all available keys. + * sign the zone apex keyset with all available + * keys. * @param ds_digest_alg - * The digest algorithm to use when generating DS records. + * The digest algorithm to use when generating DS + * records. * @param NSECIncludeNames - * names that are to be included in the NSEC chain regardless. This - * may be null. + * names that are to be included in the NSEC chain + * regardless. This + * may be null. * @return an ordered list of {@link org.xbill.DNS.Record} objects, * representing the signed zone. */ public List signZoneOptIn(Name zonename, List records, - List kskpairs, List zskpairs, - Date start, Date expire, - boolean useConservativeOptIn, - boolean fullySignKeyset, List NSECIncludeNames, - int ds_digest_alg) throws IOException, - GeneralSecurityException - { + List kskpairs, List zskpairs, + Instant start, Instant expire, + boolean useConservativeOptIn, + boolean fullySignKeyset, List NSECIncludeNames, + int ds_digest_alg) throws IOException, + GeneralSecurityException { return signZone(zonename, records, kskpairs, zskpairs, start, expire, - fullySignKeyset, ds_digest_alg, NSEC_EXP_OPT_IN, NSECIncludeNames, - null, 0, 0, useConservativeOptIn); + fullySignKeyset, ds_digest_alg, NSEC_EXP_OPT_IN, NSECIncludeNames, + null, 0, 0, useConservativeOptIn); } } diff --git a/src/main/java/com/verisignlabs/dnssec/security/ProtoNSEC3.java b/src/main/java/com/verisignlabs/dnssec/security/ProtoNSEC3.java index 9e67469..10b24c3 100644 --- a/src/main/java/com/verisignlabs/dnssec/security/ProtoNSEC3.java +++ b/src/main/java/com/verisignlabs/dnssec/security/ProtoNSEC3.java @@ -1,11 +1,9 @@ /* - * $Id$ - * - * Copyright (c) 2005 VeriSign. All rights reserved. - * + * Copyright (c) 2005, 2022 Verisign. All rights reserved. + * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: - * + * * 1. Redistributions of source code must retain the above copyright notice, * this list of conditions and the following disclaimer. 2. Redistributions in * binary form must reproduce the above copyright notice, this list of @@ -13,7 +11,7 @@ * materials provided with the distribution. 3. The name of the author may not * be used to endorse or promote products derived from this software without * specific prior written permission. - * + * * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 @@ -24,12 +22,15 @@ * 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. - * + * */ package com.verisignlabs.dnssec.security; -import org.xbill.DNS.*; +import org.xbill.DNS.DClass; +import org.xbill.DNS.NSEC3Record; +import org.xbill.DNS.Name; +import org.xbill.DNS.TextParseException; import org.xbill.DNS.utils.base16; import org.xbill.DNS.utils.base32; @@ -37,25 +38,22 @@ import org.xbill.DNS.utils.base32; * This is a class representing a "prototype NSEC3" resource record. These are * used as an intermediate stage (in zone signing) between determining the list * of NSEC3 records and forming them into a viable chain. - * - * @author David Blacka (original) - * @author $Author: davidb $ - * @version $Revision: 183 $ + * + * @author David Blacka */ -public class ProtoNSEC3 -{ - private Name originalOwner; - private int hashAlg; - private byte flags; - private int iterations; - private byte[] salt; - private byte[] next; - private byte[] owner; // cached numerical owner value. - private TypeMap typemap; - private Name zone; - private Name name; - private int dclass; - private long ttl; +public class ProtoNSEC3 { + private Name originalOwner; + private int hashAlg; + private byte flags; + private int iterations; + private byte[] salt; + private byte[] next; + private byte[] owner; // cached numerical owner value. + private TypeMap typemap; + private Name zone; + private Name name; + private int dclass; + private long ttl; private static final base32 b32 = new base32(base32.Alphabet.BASE32HEX, false, false); @@ -63,9 +61,8 @@ public class ProtoNSEC3 * Creates an NSEC3 Record from the given data. */ public ProtoNSEC3(byte[] owner, Name originalOwner, Name zone, int dclass, long ttl, - int hashAlg, byte flags, int iterations, byte[] salt, byte[] next, - TypeMap typemap) - { + int hashAlg, byte flags, int iterations, byte[] salt, byte[] next, + TypeMap typemap) { this.zone = zone; this.owner = owner; this.dclass = dclass; @@ -80,29 +77,23 @@ public class ProtoNSEC3 } public ProtoNSEC3(byte[] owner, Name originalOwner, Name zone, int dclass, long ttl, - int hashAlg, byte flags, int iterations, byte[] salt, byte[] next, - int[] types) - { + int hashAlg, byte flags, int iterations, byte[] salt, byte[] next, + int[] types) { this(owner, originalOwner, zone, dclass, ttl, hashAlg, flags, iterations, salt, next, - TypeMap.fromTypes(types)); + TypeMap.fromTypes(types)); } - private String hashToString(byte[] hash) - { - if (hash == null) return null; + private String hashToString(byte[] hash) { + if (hash == null) + return null; return b32.toString(hash); } - public Name getName() - { - if (name == null) - { - try - { + public Name getName() { + if (name == null) { + try { name = new Name(hashToString(owner), zone); - } - catch (TextParseException e) - { + } catch (TextParseException e) { // This isn't going to happen. } } @@ -110,122 +101,104 @@ public class ProtoNSEC3 return name; } - public byte[] getNext() - { + public Name getOriginalOwnerName() { + return this.originalOwner; + } + + public byte[] getNext() { return next; } - public void setNext(byte[] next) - { + public void setNext(byte[] next) { this.next = next; } - public byte getFlags() - { + public byte getFlags() { return flags; } - public boolean getOptOutFlag() - { + public boolean getOptOutFlag() { return (flags & NSEC3Record.Flags.OPT_OUT) != 0; } - public void setOptOutFlag(boolean optOutFlag) - { + public void setOptOutFlag(boolean optOutFlag) { if (optOutFlag) this.flags |= NSEC3Record.Flags.OPT_OUT; else this.flags &= ~NSEC3Record.Flags.OPT_OUT; } - public long getTTL() - { + public long getTTL() { return ttl; } - public void setTTL(long ttl) - { + public void setTTL(long ttl) { this.ttl = ttl; } - public TypeMap getTypemap() - { + public TypeMap getTypemap() { return typemap; } - public int[] getTypes() - { + public int[] getTypes() { return typemap.getTypes(); } - public void setTypemap(TypeMap typemap) - { + public void setTypemap(TypeMap typemap) { this.typemap = typemap; } - public int getDClass() - { + public int getDClass() { return dclass; } - public int getHashAlgorithm() - { + public int getHashAlgorithm() { return hashAlg; } - public int getIterations() - { + public int getIterations() { return iterations; } - public byte[] getOwner() - { + public byte[] getOwner() { return owner; } - public byte[] getSalt() - { + public byte[] getSalt() { return salt; } - public Name getZone() - { + public Name getZone() { return zone; } - public NSEC3Record getNSEC3Record() - { - String comment = (originalOwner == null) ? "(unknown original ownername)" - : originalOwner.toString(); - return new NSEC3Record(getName(), dclass, ttl, hashAlg, flags, iterations, salt, - next, getTypes(), comment); + public NSEC3Record getNSEC3Record() { + return new NSEC3Record(getName(), dclass, ttl, hashAlg, flags, iterations, salt, next, getTypes()); } - public void mergeTypes(TypeMap new_types) - { - int[] nt = new_types.getTypes(); - for (int i = 0; i < nt.length; i++) - { - if (!typemap.get(nt[i])) typemap.set(nt[i]); + public void mergeTypes(TypeMap newTypes) { + int[] nt = newTypes.getTypes(); + for (int i = 0; i < nt.length; i++) { + if (!typemap.get(nt[i])) + typemap.set(nt[i]); } } - public int compareTo(ProtoNSEC3 o) - { - if (o == null) return 1; - byte[] o_owner = o.getOwner(); - int len = owner.length < o_owner.length ? o_owner.length : owner.length; - for (int i = 0; i < len; i++) - { - int d = ((owner[i] & 0xFF) - (o_owner[i] & 0xFF)); - if (d != 0) return d; + public int compareTo(ProtoNSEC3 o) { + if (o == null) + return 1; + byte[] origOwner = o.getOwner(); + int len = owner.length < origOwner.length ? origOwner.length : owner.length; + for (int i = 0; i < len; i++) { + int d = ((owner[i] & 0xFF) - (origOwner[i] & 0xFF)); + if (d != 0) + return d; } - return owner.length - o_owner.length; + return owner.length - origOwner.length; } - public String toString() - { - StringBuffer sb = new StringBuffer(); + public String toString() { + StringBuilder sb = new StringBuilder(); sb.append(getName()); sb.append(' '); sb.append(ttl); @@ -248,10 +221,8 @@ public class ProtoNSEC3 return sb.toString(); } - public static class Comparator implements java.util.Comparator - { - public int compare(ProtoNSEC3 a, ProtoNSEC3 b) - { + public static class Comparator implements java.util.Comparator { + public int compare(ProtoNSEC3 a, ProtoNSEC3 b) { return a.compareTo(b); } diff --git a/src/main/java/com/verisignlabs/dnssec/security/RecordComparator.java b/src/main/java/com/verisignlabs/dnssec/security/RecordComparator.java index 049f5a1..9f6b312 100644 --- a/src/main/java/com/verisignlabs/dnssec/security/RecordComparator.java +++ b/src/main/java/com/verisignlabs/dnssec/security/RecordComparator.java @@ -1,6 +1,4 @@ -// $Id$ -// -// Copyright (C) 2000-2003 Network Solutions, Inc. +// Copyright (C) 2000-2003 Network Solutions, Inc., 2022 Verisign, Inc. // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public @@ -30,79 +28,87 @@ import org.xbill.DNS.Type; * objects. It imposes a canonical order consistent with DNSSEC. It does not put * records within a RRset into canonical order: see {@link ByteArrayComparator}. * - * @author David Blacka (original) - * @author $Author$ - * @version $Revision$ + * @author David Blacka */ -public class RecordComparator implements Comparator -{ - public RecordComparator() - { +public class RecordComparator implements Comparator { + public RecordComparator() { } /** - * In general, types are compared numerically. However, SOA, NS, and DNAME are ordered + * In general, types are compared numerically. However, SOA, NS, and DNAME are + * ordered * before the rest. */ - private int compareTypes(int a, int b) - { - if (a == b) return 0; - if (a == Type.SOA) return -1; - if (b == Type.SOA) return 1; + private int compareTypes(int a, int b) { + if (a == b) + return 0; + if (a == Type.SOA) + return -1; + if (b == Type.SOA) + return 1; - if (a == Type.NS) return -1; - if (b == Type.NS) return 1; + if (a == Type.NS) + return -1; + if (b == Type.NS) + return 1; - if (a == Type.DNAME) return -1; - if (b == Type.DNAME) return 1; - - if (a < b) return -1; + if (a == Type.DNAME) + return -1; + if (b == Type.DNAME) + return 1; + + if (a < b) + return -1; return 1; } - private int compareRDATA(Record a, Record b) - { + private int compareRDATA(Record a, Record b) { byte[] a_rdata = a.rdataToWireCanonical(); byte[] b_rdata = b.rdataToWireCanonical(); - for (int i = 0; i < a_rdata.length && i < b_rdata.length; i++) - { + for (int i = 0; i < a_rdata.length && i < b_rdata.length; i++) { int n = (a_rdata[i] & 0xFF) - (b_rdata[i] & 0xFF); - if (n != 0) return n; + if (n != 0) + return n; } return (a_rdata.length - b_rdata.length); } - public int compare(Record a, Record b) - { - if (a == null && b == null) return 0; - if (a == null) return 1; - if (b == null) return -1; + public int compare(Record a, Record b) { + if (a == null && b == null) + return 0; + if (a == null) + return 1; + if (b == null) + return -1; int res = a.getName().compareTo(b.getName()); - if (res != 0) return res; + if (res != 0) + return res; int a_type = a.getType(); int b_type = b.getType(); int sig_type = 0; - if (a_type == Type.RRSIG) - { + if (a_type == Type.RRSIG) { a_type = ((RRSIGRecord) a).getTypeCovered(); - if (b_type != Type.RRSIG) sig_type = 1; + if (b_type != Type.RRSIG) + sig_type = 1; } - if (b_type == Type.RRSIG) - { + if (b_type == Type.RRSIG) { b_type = ((RRSIGRecord) b).getTypeCovered(); - if (a.getType() != Type.RRSIG) sig_type = -1; + if (a.getType() != Type.RRSIG) + sig_type = -1; } res = compareTypes(a_type, b_type); - if (res != 0) return res; + if (res != 0) + return res; - if (sig_type != 0) return sig_type; + if (sig_type != 0) + return sig_type; return compareRDATA(a, b); } diff --git a/src/main/java/com/verisignlabs/dnssec/security/SignUtils.java b/src/main/java/com/verisignlabs/dnssec/security/SignUtils.java index 35be19d..384ee2c 100644 --- a/src/main/java/com/verisignlabs/dnssec/security/SignUtils.java +++ b/src/main/java/com/verisignlabs/dnssec/security/SignUtils.java @@ -1,6 +1,4 @@ -// $Id$ -// -// Copyright (C) 2001-2003 VeriSign, Inc. +// Copyright (C) 2001-2003, 2022 Verisign, Inc. // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public @@ -25,41 +23,57 @@ import java.security.MessageDigest; import java.security.NoSuchAlgorithmException; import java.security.SignatureException; import java.security.interfaces.DSAParams; -import java.util.*; +import java.time.Instant; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Collections; +import java.util.HashSet; +import java.util.Iterator; +import java.util.List; +import java.util.ListIterator; +import java.util.Set; import java.util.logging.Logger; -import org.xbill.DNS.*; +import org.xbill.DNS.DClass; +import org.xbill.DNS.DNSKEYRecord; +import org.xbill.DNS.DNSOutput; +import org.xbill.DNS.DNSSEC; +import org.xbill.DNS.DSRecord; +import org.xbill.DNS.NSEC3PARAMRecord; +import org.xbill.DNS.NSEC3Record; +import org.xbill.DNS.NSECRecord; +import org.xbill.DNS.Name; +import org.xbill.DNS.RRSIGRecord; +import org.xbill.DNS.RRset; +import org.xbill.DNS.Record; +import org.xbill.DNS.SOARecord; +import org.xbill.DNS.Type; import org.xbill.DNS.utils.base64; /** * This class contains a bunch of utility methods that are generally useful in * signing zones. * - * @author David Blacka (original) - * @author $Author$ - * @version $Revision$ + * @author David Blacka */ -public class SignUtils -{ - private static final int ASN1_INT = 0x02; - private static final int ASN1_SEQ = 0x30; +public class SignUtils { + private static final int ASN1_INT = 0x02; + private static final int ASN1_SEQ = 0x30; - public static final int RR_NORMAL = 0; - public static final int RR_DELEGATION = 1; - public static final int RR_GLUE = 2; - public static final int RR_INVALID = 3; - public static final int RR_DNAME = 4; + public static final int RR_NORMAL = 0; + public static final int RR_DELEGATION = 1; + public static final int RR_GLUE = 2; + public static final int RR_INVALID = 3; + public static final int RR_DNAME = 4; - private static Logger log; + private static Logger log; - static - { + static { log = Logger.getLogger(SignUtils.class.toString()); } - public static void setLog(Logger v) - { + public static void setLog(Logger v) { log = v; } @@ -68,25 +82,25 @@ public class SignUtils * everything but the actual signature itself. * * @param rrset - * the RRset being signed. + * the RRset being signed. * @param key - * the public DNSKEY RR counterpart to the key being used to sign the - * RRset + * the public DNSKEY RR counterpart to the key being used to sign + * the + * RRset * @param start - * the RRSIG inception time. + * the RRSIG inception time. * @param expire - * the RRSIG expiration time. + * the RRSIG expiration time. * @param sig_ttl - * the TTL of the resulting RRSIG record. + * the TTL of the resulting RRSIG record. * * @return a prototype signature based on the RRset and key information. */ - public static RRSIGRecord generatePreRRSIG(RRset rrset, DNSKEYRecord key, Date start, - Date expire, long sig_ttl) - { + public static RRSIGRecord generatePreRRSIG(RRset rrset, DNSKEYRecord key, Instant start, + Instant expire, long sig_ttl) { return new RRSIGRecord(rrset.getName(), rrset.getDClass(), sig_ttl, rrset.getType(), - key.getAlgorithm(), (int) rrset.getTTL(), expire, start, - key.getFootprint(), key.getName(), null); + key.getAlgorithm(), (int) rrset.getTTL(), expire, start, + key.getFootprint(), key.getName(), null); } /** @@ -94,42 +108,41 @@ public class SignUtils * everything but the actual signature itself. * * @param rec - * the DNS record being signed (forming an entire RRset). + * the DNS record being signed (forming an entire RRset). * @param key - * the public DNSKEY RR counterpart to the key signing the record. + * the public DNSKEY RR counterpart to the key signing the + * record. * @param start - * the RRSIG inception time. + * the RRSIG inception time. * @param expire - * the RRSIG expiration time. + * the RRSIG expiration time. * @param sig_ttl - * the TTL of the result RRSIG record. + * the TTL of the result RRSIG record. * * @return a prototype signature based on the Record and key information. */ - public static RRSIGRecord generatePreRRSIG(Record rec, DNSKEYRecord key, Date start, - Date expire, long sig_ttl) - { + public static RRSIGRecord generatePreRRSIG(Record rec, DNSKEYRecord key, Instant start, + Instant expire, long sig_ttl) { return new RRSIGRecord(rec.getName(), rec.getDClass(), sig_ttl, rec.getType(), - key.getAlgorithm(), rec.getTTL(), expire, start, - key.getFootprint(), key.getName(), null); + key.getAlgorithm(), rec.getTTL(), expire, start, + key.getFootprint(), key.getName(), null); } /** * Generate the binary image of the prototype RRSIG RR. * * @param presig - * the RRSIG RR prototype. + * the RRSIG RR prototype. * @return the RDATA portion of the prototype RRSIG record. This forms the * first part of the data to be signed. */ - private static byte[] generatePreSigRdata(RRSIGRecord presig) - { + private static byte[] generatePreSigRdata(RRSIGRecord presig) { // Generate the binary image; DNSOutput image = new DNSOutput(); // precalc some things - int start_time = (int) (presig.getTimeSigned().getTime() / 1000); - int expire_time = (int) (presig.getExpire().getTime() / 1000); + long start_time = presig.getTimeSigned().getEpochSecond(); + long expire_time = presig.getExpire().getEpochSecond(); Name signer = presig.getSigner(); // first write out the partial SIG record (this is the SIG RDATA @@ -150,35 +163,32 @@ public class SignUtils * Calculate the canonical wire line format of the RRset. * * @param rrset - * the RRset to convert. + * the RRset to convert. * @param ttl - * the TTL to use when canonicalizing -- this is generally the - * TTL of the signature if there is a pre-existing signature. If - * not it is just the ttl of the rrset itself. + * the TTL to use when canonicalizing -- this is generally the + * TTL of the signature if there is a pre-existing signature. If + * not it is just the ttl of the rrset itself. * @param labels - * the labels field of the signature, or 0. + * the labels field of the signature, or 0. * @return the canonical wire line format of the rrset. This is the second * part of data to be signed. */ - @SuppressWarnings("unchecked") - public static byte[] generateCanonicalRRsetData(RRset rrset, long ttl, int labels) - { + public static byte[] generateCanonicalRRsetData(RRset rrset, long ttl, int labels) { DNSOutput image = new DNSOutput(); - if (ttl == 0) ttl = rrset.getTTL(); - Name n = rrset.getName(); - if (labels == 0) - { - labels = n.labels(); + if (ttl == 0) { + ttl = rrset.getTTL(); } - else - { + + Name n = rrset.getName(); + if (labels == 0) { + labels = n.labels(); + } else { // correct for Name()'s conception of label count. labels++; } boolean wildcardName = false; - if (n.labels() != labels) - { + if (n.labels() != labels) { n = n.wild(n.labels() - labels); wildcardName = true; log.fine("Detected wildcard expansion: " + rrset.getName() + " changed to " + n); @@ -187,11 +197,8 @@ public class SignUtils // now convert the wire format records in the RRset into a // list of byte arrays. ArrayList canonical_rrs = new ArrayList(); - for (Iterator i = rrset.rrs(); i.hasNext();) - { - Record r = i.next(); - if (r.getTTL() != ttl || wildcardName) - { + for (Record r : rrset.rrs()) { + if (r.getTTL() != ttl || wildcardName) { // If necessary, we need to create a new record with a new ttl // or ownername. // In the TTL case, this avoids changing the ttl in the @@ -211,8 +218,7 @@ public class SignUtils Collections.sort(canonical_rrs, bac); - for (byte[] wire_fmt_rec : canonical_rrs) - { + for (byte[] wire_fmt_rec : canonical_rrs) { image.writeByteArray(wire_fmt_rec); } @@ -224,16 +230,15 @@ public class SignUtils * that is to be signed. * * @param rrset - * the RRset to be signed. + * the RRset to be signed. * @param presig - * a prototype SIG RR created using the same RRset. + * a prototype SIG RR created using the same RRset. * @return a block of data ready to be signed. */ public static byte[] generateSigData(RRset rrset, RRSIGRecord presig) - throws IOException - { + throws IOException { byte[] rrset_data = generateCanonicalRRsetData(rrset, presig.getOrigTTL(), - presig.getLabels()); + presig.getLabels()); return generateSigData(rrset_data, presig); } @@ -243,16 +248,17 @@ public class SignUtils * that is to be signed. * * @param rrset_data - * the RRset converted into canonical wire line format (as per the - * canonicalization rules in RFC 2535). + * the RRset converted into canonical wire line format (as per + * the + * canonicalization rules in RFC 2535). * @param presig - * the prototype signature based on the same RRset represented in - * rrset_data. + * the prototype signature based on the same RRset represented + * in + * rrset_data. * @return a block of data ready to be signed. */ public static byte[] generateSigData(byte[] rrset_data, RRSIGRecord presig) - throws IOException - { + throws IOException { byte[] sig_rdata = generatePreSigRdata(presig); ByteArrayOutputStream image = new ByteArrayOutputStream(sig_rdata.length @@ -269,18 +275,17 @@ public class SignUtils * return the fully formed RRSIGRecord. * * @param signature - * the cryptographic signature, in DNSSEC format. + * the cryptographic signature, in DNSSEC format. * @param presig - * the prototype RRSIG RR to add the signature to. + * the prototype RRSIG RR to add the signature to. * @return the fully formed RRSIG RR. */ - public static RRSIGRecord generateRRSIG(byte[] signature, RRSIGRecord presig) - { + public static RRSIGRecord generateRRSIG(byte[] signature, RRSIGRecord presig) { return new RRSIGRecord(presig.getName(), presig.getDClass(), presig.getTTL(), - presig.getTypeCovered(), presig.getAlgorithm(), - presig.getOrigTTL(), presig.getExpire(), - presig.getTimeSigned(), presig.getFootprint(), - presig.getSigner(), signature); + presig.getTypeCovered(), presig.getAlgorithm(), + presig.getOrigTTL(), presig.getExpire(), + presig.getTimeSigned(), presig.getFootprint(), + presig.getSigner(), signature); } /** @@ -296,14 +301,14 @@ public class SignUtils * positive. * * @param signature - * the RFC 2536 formatted DSA signature. + * the RFC 2536 formatted DSA signature. * @return The ASN.1 formatted DSA signature. * @throws SignatureException - * if there was something wrong with the RFC 2536 formatted - * signature. + * if there was something wrong with the RFC 2536 + * formatted + * signature. */ - public static byte[] convertDSASignature(byte[] signature) throws SignatureException - { + public static byte[] convertDSASignature(byte[] signature) throws SignatureException { if (signature.length != 41) throw new SignatureException("RFC 2536 signature not expected length."); @@ -311,8 +316,10 @@ public class SignUtils byte s_pad = 0; // handle initial null byte padding. - if (signature[1] < 0) r_pad++; - if (signature[21] < 0) s_pad++; + if (signature[1] < 0) + r_pad++; + if (signature[21] < 0) + s_pad++; // ASN.1 length = R length + S length + (2 + 2 + 2), where each 2 // is for a ASN.1 type-length byte pair of which there are three @@ -328,7 +335,8 @@ public class SignUtils sig[pos++] = (byte) (20 + r_pad); // copy the value of R, leaving a null byte if necessary - if (r_pad == 1) sig[pos++] = 0; + if (r_pad == 1) + sig[pos++] = 0; System.arraycopy(signature, 1, sig, pos, 20); pos += 20; @@ -337,7 +345,8 @@ public class SignUtils sig[pos++] = (byte) (20 + s_pad); // copy the value of S, leaving a null byte if necessary - if (s_pad == 1) sig[pos++] = 0; + if (s_pad == 1) + sig[pos++] = 0; System.arraycopy(signature, 21, sig, pos, 20); @@ -357,28 +366,26 @@ public class SignUtils * bytes). * * @param params - * the DSA parameters associated with the DSA key used to generate - * the signature. + * the DSA parameters associated with the DSA key used to + * generate + * the signature. * @param signature - * the ASN.1 formatted DSA signature. + * the ASN.1 formatted DSA signature. * @return a RFC 2536 formatted DSA signature. * @throws SignatureException - * if something is wrong with the ASN.1 format. + * if something is wrong with the ASN.1 format. */ public static byte[] convertDSASignature(DSAParams params, byte[] signature) - throws SignatureException - { - if (signature[0] != ASN1_SEQ || signature[2] != ASN1_INT) - { + throws SignatureException { + if (signature[0] != ASN1_SEQ || signature[2] != ASN1_INT) { throw new SignatureException("Invalid ASN.1 signature format: expected SEQ, INT"); } byte r_pad = (byte) (signature[3] - 20); - if (signature[24 + r_pad] != ASN1_INT) - { + if (signature[24 + r_pad] != ASN1_INT) { throw new SignatureException( - "Invalid ASN.1 signature format: expected SEQ, INT, INT"); + "Invalid ASN.1 signature format: expected SEQ, INT, INT"); } log.finer("(start) ASN.1 DSA Sig:\n" + base64.toString(signature)); @@ -391,12 +398,9 @@ public class SignUtils sig[0] = (byte) ((params.getP().bitLength() - 512) / 64); // copy R value - if (r_pad >= 0) - { + if (r_pad >= 0) { System.arraycopy(signature, 4 + r_pad, sig, 1, 20); - } - else - { + } else { // R is shorter than 20 bytes, so right justify the number // (r_pad is negative here, remember?). Arrays.fill(sig, 1, 1 - r_pad, (byte) 0); @@ -404,25 +408,19 @@ public class SignUtils } // copy S value - if (s_pad >= 0) - { + if (s_pad >= 0) { System.arraycopy(signature, 26 + r_pad + s_pad, sig, 21, 20); - } - else - { + } else { // S is shorter than 20 bytes, so right justify the number // (s_pad is negative here). Arrays.fill(sig, 21, 21 - s_pad, (byte) 0); System.arraycopy(signature, 26 + r_pad, sig, 21 - s_pad, 20 + s_pad); } - if (r_pad < 0 || s_pad < 0) - { + if (r_pad < 0 || s_pad < 0) { log.finer("(finish ***) RFC 2536 DSA Sig:\n" + base64.toString(sig)); - } - else - { + } else { log.finer("(finish) RFC 2536 DSA Sig:\n" + base64.toString(sig)); } @@ -431,15 +429,15 @@ public class SignUtils // Given one of the ECDSA algorithms determine the "length", which is the // length, in bytes, of both 'r' and 's' in the ECDSA signature. - private static int ecdsaLength(int algorithm) throws SignatureException - { - switch (algorithm) - { - case DNSSEC.Algorithm.ECDSAP256SHA256: return 32; - case DNSSEC.Algorithm.ECDSAP384SHA384: return 48; + private static int ecdsaLength(int algorithm) throws SignatureException { + switch (algorithm) { + case DNSSEC.Algorithm.ECDSAP256SHA256: + return 32; + case DNSSEC.Algorithm.ECDSAP384SHA384: + return 48; default: - throw new SignatureException("Algorithm " + algorithm + - " is not a supported ECDSA signature algorithm."); + throw new SignatureException("Algorithm " + algorithm + + " is not a supported ECDSA signature algorithm."); } } @@ -458,25 +456,22 @@ public class SignUtils * exactly "length" bytes. * * @param signature - * The output of a ECDSA signature object. + * The output of a ECDSA signature object. * @return signature data formatted for use in DNSSEC. * @throws SignatureException if the ASN.1 encoding appears to be corrupt. */ - public static byte[] convertECDSASignature(int algorithm, byte[] signature) - throws SignatureException - { + public static byte[] convertECDSASignature(int algorithm, byte[] signature) + throws SignatureException { int exp_length = ecdsaLength(algorithm); byte[] sig = new byte[exp_length * 2]; - if (signature[0] != ASN1_SEQ || signature[2] != ASN1_INT) - { + if (signature[0] != ASN1_SEQ || signature[2] != ASN1_INT) { throw new SignatureException("Invalid ASN.1 signature format: expected SEQ, INT"); } int r_len = signature[3]; int r_pos = 4; - - if (signature[r_pos + r_len] != ASN1_INT) - { + + if (signature[r_pos + r_len] != ASN1_INT) { throw new SignatureException("Invalid ASN.1 signature format: expected SEQ, INT, INT"); } int s_pos = r_pos + r_len + 2; @@ -513,33 +508,40 @@ public class SignUtils * exactly "length" bytes. * * @param signature - * The binary signature data from an RRSIG record. + * The binary signature data from an RRSIG record. * @return signature data that may be used in a JCE Signature object for * verification purposes. */ - public static byte[] convertECDSASignature(byte[] signature) - { + public static byte[] convertECDSASignature(byte[] signature) { byte r_src_pos, r_src_len, r_pad, s_src_pos, s_src_len, s_pad, len; r_src_len = s_src_len = (byte) (signature.length / 2); - r_src_pos = 0; r_pad = 0; - s_src_pos = (byte) (r_src_pos + r_src_len); s_pad = 0; + r_src_pos = 0; + r_pad = 0; + s_src_pos = (byte) (r_src_pos + r_src_len); + s_pad = 0; len = (byte) (6 + r_src_len + s_src_len); // leading zeroes are forbidden while (signature[r_src_pos] == 0 && r_src_len > 0) { - r_src_pos++; r_src_len--; len--; + r_src_pos++; + r_src_len--; + len--; } while (signature[s_src_pos] == 0 && s_src_len > 0) { - s_src_pos++; s_src_len--; len--; + s_src_pos++; + s_src_len--; + len--; } // except when they are mandatory if (r_src_len > 0 && signature[r_src_pos] < 0) { - r_pad = 1; len++; + r_pad = 1; + len++; } if (s_src_len > 0 && signature[s_src_pos] < 0) { - s_pad = 1; len++; + s_pad = 1; + len++; } byte[] sig = new byte[len]; byte pos = 0; @@ -589,52 +591,51 @@ public class SignUtils * ordering, and the caller must maintain the last_cut parameter. * * @param zonename - * the name of the zone that is being processed. + * the name of the zone that is being processed. * @param name - * the name of the record/set under consideration. + * the name of the record/set under consideration. * @param type - * the type of the record/set under consideration. + * the type of the record/set under consideration. * @param last_cut - * the name of the last DELEGATION record/set that was encountered - * while iterating over the zone in canonical order. + * the name of the last DELEGATION record/set that was + * encountered + * while iterating over the zone in canonical order. */ public static int recordSecType(Name zonename, Name name, int type, Name last_cut, - Name last_dname) - { + Name last_dname) { // records not even in the zone itself are invalid. - if (!name.subdomain(zonename)) return RR_INVALID; + if (!name.subdomain(zonename)) + return RR_INVALID; // all records a the zone apex are normal, by definition. - if (name.equals(zonename)) return RR_NORMAL; + if (name.equals(zonename)) + return RR_NORMAL; - if (last_cut != null && name.subdomain(last_cut)) - { - // if we are at the same level as a delegation point, but not one of a set of types allowed at + if (last_cut != null && name.subdomain(last_cut)) { + // if we are at the same level as a delegation point, but not one of a set of + // types allowed at // a delegation point (NS, DS, NSEC), this is glue. - if (name.equals(last_cut)) - { - if (type != Type.NS && type != Type.DS && type != Type.NXT && type != Type.NSEC) - { + if (name.equals(last_cut)) { + if (type != Type.NS && type != Type.DS && type != Type.NXT && type != Type.NSEC) { return RR_GLUE; } } // if we are below the delegation point, this is glue. - else - { + else { return RR_GLUE; } } - // if we are below a DNAME, then the RR is invalid. + // if we are below a DNAME, then the RR is invalid. if (last_dname != null && name.subdomain(last_dname) - && name.labels() > last_dname.labels()) - { + && name.labels() > last_dname.labels()) { return RR_INVALID; } // since we are not at zone level, any NS records are delegations - if (type == Type.NS) return RR_DELEGATION; + if (type == Type.NS) + return RR_DELEGATION; // and everything else is normal return RR_NORMAL; @@ -645,20 +646,17 @@ public class SignUtils * records into a list of RRsets. * * @param records - * a list of {@link org.xbill.DNS.Record} objects, in DNSSEC - * canonical order. + * a list of {@link org.xbill.DNS.Record} objects, in DNSSEC + * canonical order. * @return a List of {@link org.xbill.DNS.RRset} objects. */ - public static List assembleIntoRRsets(List records) - { + public static List assembleIntoRRsets(List records) { RRset rrset = new RRset(); ArrayList rrsets = new ArrayList(); - for (Record r : records) - { + for (Record r : records) { // First record - if (rrset.size() == 0) - { + if (rrset.size() == 0) { rrset.addRR(r); continue; } @@ -666,8 +664,8 @@ public class SignUtils // Current record is part of the current RRset. if (rrset.getName().equals(r.getName()) && rrset.getDClass() == r.getDClass() - && ((r.getType() == Type.RRSIG && rrset.getType() == ((RRSIGRecord) r).getTypeCovered()) || rrset.getType() == r.getType())) - { + && ((r.getType() == Type.RRSIG && rrset.getType() == ((RRSIGRecord) r).getTypeCovered()) + || rrset.getType() == r.getType())) { rrset.addRR(r); continue; } @@ -689,19 +687,17 @@ public class SignUtils /** * A little private class to hold information about a given node. */ - private static class NodeInfo - { - public Name name; - public int type; - public long ttl; - public int dclass; + private static class NodeInfo { + public Name name; + public int type; + public long ttl; + public int dclass; public Set typemap; - public boolean isSecureNode; // opt-in support. - public boolean hasOptInSpan; // opt-in support. - public int nsecIndex; + public boolean isSecureNode; // opt-in support. + public boolean hasOptInSpan; // opt-in support. + public int nsecIndex; - public NodeInfo(Record r, int nodeType) - { + public NodeInfo(Record r, int nodeType) { this.name = r.getName(); this.type = nodeType; this.ttl = r.getTTL(); @@ -712,38 +708,34 @@ public class SignUtils addType(r.getType()); } - public void addType(int type) - { - this.typemap.add(new Integer(type)); + public void addType(int type) { + this.typemap.add(Integer.valueOf(type)); // Opt-In support. if (type != Type.NS && type != Type.NSEC && type != Type.RRSIG - && type != Type.NSEC3) - { + && type != Type.NSEC3) { isSecureNode = true; } } - public boolean hasType(int type) - { + public boolean hasType(int type) { return this.typemap.contains(type); } - public String toString() - { + public String toString() { StringBuffer sb = new StringBuffer(name.toString()); - if (isSecureNode) sb.append("(S)"); - if (hasOptInSpan) sb.append("(O)"); + if (isSecureNode) + sb.append("(S)"); + if (hasOptInSpan) + sb.append("(O)"); return sb.toString(); } - public int[] getTypes() - { + public int[] getTypes() { Object[] a = typemap.toArray(); int[] res = new int[a.length]; - for (int i = 0; i < a.length; i++) - { + for (int i = 0; i < a.length; i++) { res[i] = ((Integer) a[i]).intValue(); } return res; @@ -758,14 +750,15 @@ public class SignUtils * listIterator.add() operation. * * @param zonename - * the name of the zone (used to distinguish between zone apex NS - * RRsets and delegations). + * the name of the zone (used to distinguish between zone apex + * NS + * RRsets and delegations). * @param records - * a list of {@link org.xbill.DNS.Record} objects in DNSSEC canonical - * order. + * a list of {@link org.xbill.DNS.Record} objects in DNSSEC + * canonical + * order. */ - public static void generateNSECRecords(Name zonename, List records) - { + public static void generateNSECRecords(Name zonename, List records) { // This works by iterating over a known sorted list of records. NodeInfo last_node = null; @@ -778,40 +771,38 @@ public class SignUtils // First find the SOA record -- it should be near the beginning -- and get // the soa minimum - for (Record r : records) - { - if (r.getType() == Type.SOA) - { + for (Record r : records) { + if (r.getType() == Type.SOA) { SOARecord soa = (SOARecord) r; - nsec_ttl = soa.getMinimum(); + nsec_ttl = Math.min(soa.getMinimum(), soa.getTTL()); break; } } - if (nsec_ttl == 0) - { + if (nsec_ttl == 0) { throw new IllegalArgumentException("Zone did not contain a SOA record"); } - for (ListIterator i = records.listIterator(); i.hasNext();) - { + for (ListIterator i = records.listIterator(); i.hasNext();) { Record r = i.next(); Name r_name = r.getName(); int r_type = r.getType(); int r_sectype = recordSecType(zonename, r_name, r_type, last_cut, last_dname); // skip irrelevant records - if (r_sectype == RR_INVALID || r_sectype == RR_GLUE) continue; + if (r_sectype == RR_INVALID || r_sectype == RR_GLUE) + continue; // note our last delegation point so we can recognize glue. - if (r_sectype == RR_DELEGATION) last_cut = r_name; + if (r_sectype == RR_DELEGATION) + last_cut = r_name; // if this is a DNAME, note it so we can recognize junk - if (r_type == Type.DNAME) last_dname = r_name; + if (r_type == Type.DNAME) + last_dname = r_name; // first node -- initialize - if (current_node == null) - { + if (current_node == null) { current_node = new NodeInfo(r, r_sectype); current_node.addType(Type.RRSIG); current_node.addType(Type.NSEC); @@ -819,16 +810,14 @@ public class SignUtils } // record name hasn't changed, so we are still on the same node. - if (r_name.equals(current_node.name)) - { + if (r_name.equals(current_node.name)) { current_node.addType(r_type); continue; } - if (last_node != null) - { + if (last_node != null) { NSECRecord nsec = new NSECRecord(last_node.name, last_node.dclass, nsec_ttl, - current_node.name, last_node.getTypes()); + current_node.name, last_node.getTypes()); // Note: we have to add this through the iterator, otherwise // the next access via the iterator will generate a // ConcurrencyModificationException. @@ -851,17 +840,16 @@ public class SignUtils } // Generate next to last NSEC - if (last_node != null) - { + if (last_node != null) { NSECRecord nsec = new NSECRecord(last_node.name, last_node.dclass, nsec_ttl, - current_node.name, last_node.getTypes()); + current_node.name, last_node.getTypes()); records.add(last_node.nsecIndex - 1, nsec); log.finer("Generated: " + nsec); } // Generate last NSEC NSECRecord nsec = new NSECRecord(current_node.name, current_node.dclass, nsec_ttl, - zonename, current_node.getTypes()); + zonename, current_node.getTypes()); records.add(nsec); log.finer("Generated: " + nsec); @@ -875,24 +863,27 @@ public class SignUtils * listIterator.add() operation. * * @param zonename - * the name of the zone (used to distinguish between zone apex NS - * RRsets and delegations). + * the name of the zone (used to distinguish between zone + * apex NS + * RRsets and delegations). * @param records - * a list of {@link org.xbill.DNS.Record} objects in DNSSEC canonical - * order. + * a list of {@link org.xbill.DNS.Record} objects in + * DNSSEC canonical + * order. * @param salt - * The NSEC3 salt to use (may be null or empty for no salt). + * The NSEC3 salt to use (may be null or empty for no + * salt). * @param iterations - * The number of hash iterations to use. + * The number of hash iterations to use. * @param nsec3param_ttl - * The TTL to use for the generated NSEC3PARAM records (NSEC3 records - * will use the SOA minimum) + * The TTL to use for the generated NSEC3PARAM records + * (NSEC3 records + * will use the SOA minimum) * @throws NoSuchAlgorithmException */ public static void generateNSEC3Records(Name zonename, List records, - byte[] salt, int iterations, long nsec3param_ttl) - throws NoSuchAlgorithmException - { + byte[] salt, int iterations, long nsec3param_ttl) + throws NoSuchAlgorithmException { List proto_nsec3s = new ArrayList(); NodeInfo current_node = null; NodeInfo last_node = null; @@ -903,8 +894,7 @@ public class SignUtils long nsec3_ttl = 0; - for (Record r : records) - { + for (Record r : records) { Name r_name = r.getName(); int r_type = r.getType(); @@ -912,34 +902,33 @@ public class SignUtils int r_sectype = recordSecType(zonename, r_name, r_type, last_cut, last_dname); // skip irrelevant records - if (r_sectype == RR_INVALID || r_sectype == RR_GLUE) continue; + if (r_sectype == RR_INVALID || r_sectype == RR_GLUE) + continue; // note our last delegation point so we can recognize glue. - if (r_sectype == RR_DELEGATION) last_cut = r_name; + if (r_sectype == RR_DELEGATION) + last_cut = r_name; // note our last DNAME point, so we can recognize junk. - if (r_type == Type.DNAME) last_dname = r_name; + if (r_type == Type.DNAME) + last_dname = r_name; - if (r_type == Type.SOA) - { + if (r_type == Type.SOA) { SOARecord soa = (SOARecord) r; - nsec3_ttl = soa.getMinimum(); - if (nsec3param_ttl < 0) - { - nsec3param_ttl = soa.getTTL(); + nsec3_ttl = Math.min(soa.getMinimum(), soa.getTTL()); + if (nsec3param_ttl < 0) { + nsec3param_ttl = nsec3_ttl; } } // For the first iteration, we create our current node. - if (current_node == null) - { + if (current_node == null) { current_node = new NodeInfo(r, r_sectype); continue; } // If we are at the same name, we are on the same node. - if (r_name.equals(current_node.name)) - { + if (r_name.equals(current_node.name)) { current_node.addType(r_type); continue; } @@ -962,9 +951,9 @@ public class SignUtils records.addAll(nsec3s); NSEC3PARAMRecord nsec3param = new NSEC3PARAMRecord(zonename, DClass.IN, - nsec3param_ttl, - NSEC3Record.SHA1_DIGEST_ID, - (byte) 0, iterations, salt); + nsec3param_ttl, + NSEC3Record.SHA1_DIGEST_ID, + (byte) 0, iterations, salt); records.add(nsec3param); } @@ -979,29 +968,33 @@ public class SignUtils * listIterator.add() operation. * * @param zonename - * the name of the zone (used to distinguish between zone apex NS - * RRsets and delegations). + * the name of the zone (used to distinguish between zone + * apex NS + * RRsets and delegations). * @param records - * a list of {@link org.xbill.DNS.Record} objects in DNSSEC canonical - * order. + * a list of {@link org.xbill.DNS.Record} objects in + * DNSSEC canonical + * order. * @param includedNames - * A list of {@link org.xbill.DNS.Name} objects. These names will be - * included in the NSEC3 chain (if they exist in the zone) - * regardless. + * A list of {@link org.xbill.DNS.Name} objects. These + * names will be + * included in the NSEC3 chain (if they exist in the zone) + * regardless. * @param salt - * The NSEC3 salt to use (may be null or empty for no salt). + * The NSEC3 salt to use (may be null or empty for no + * salt). * @param iterations - * The number of hash iterations to use. + * The number of hash iterations to use. * @param nsec3param_ttl - * The TTL to use for the generated NSEC3PARAM records (NSEC3 records - * will use the SOA minimum) + * The TTL to use for the generated NSEC3PARAM records + * (NSEC3 records + * will use the SOA minimum) * @throws NoSuchAlgorithmException */ public static void generateOptOutNSEC3Records(Name zonename, List records, - List includedNames, byte[] salt, - int iterations, long nsec3param_ttl) - throws NoSuchAlgorithmException - { + List includedNames, byte[] salt, + int iterations, long nsec3param_ttl) + throws NoSuchAlgorithmException { List proto_nsec3s = new ArrayList(); NodeInfo current_node = null; NodeInfo last_node = null; @@ -1013,13 +1006,11 @@ public class SignUtils long nsec3_ttl = 0; HashSet includeSet = null; - if (includedNames != null) - { + if (includedNames != null) { includeSet = new HashSet(includedNames); } - for (Record r : records) - { + for (Record r : records) { Name r_name = r.getName(); int r_type = r.getType(); @@ -1027,39 +1018,37 @@ public class SignUtils int r_sectype = recordSecType(zonename, r_name, r_type, last_cut, last_dname); // skip irrelevant records - if (r_sectype == RR_INVALID || r_sectype == RR_GLUE) continue; + if (r_sectype == RR_INVALID || r_sectype == RR_GLUE) + continue; // note our last delegation point so we can recognize glue. - if (r_sectype == RR_DELEGATION) last_cut = r_name; + if (r_sectype == RR_DELEGATION) + last_cut = r_name; - if (r_type == Type.DNAME) last_dname = r_name; + if (r_type == Type.DNAME) + last_dname = r_name; - if (r_type == Type.SOA) - { + if (r_type == Type.SOA) { SOARecord soa = (SOARecord) r; - nsec3_ttl = soa.getMinimum(); - if (nsec3param_ttl < 0) - { - nsec3param_ttl = soa.getTTL(); + nsec3_ttl = Math.min(soa.getMinimum(), soa.getTTL()); + if (nsec3param_ttl < 0) { + nsec3param_ttl = nsec3_ttl; } } // For the first iteration, we create our current node. - if (current_node == null) - { + if (current_node == null) { current_node = new NodeInfo(r, r_sectype); continue; } // If we are at the same name, we are on the same node. - if (r_name.equals(current_node.name)) - { + if (r_name.equals(current_node.name)) { current_node.addType(r_type); continue; } - if (includeSet != null && includeSet.contains(current_node.name)) - { + if (includeSet != null && includeSet.contains(current_node.name)) { current_node.isSecureNode = true; } @@ -1068,12 +1057,9 @@ public class SignUtils // But first, we need to do something with the last node. generateNSEC3ForNode(last_node, zonename, salt, iterations, true, proto_nsec3s); - if (current_node.isSecureNode) - { + if (current_node.isSecureNode) { last_node = current_node; - } - else - { + } else { last_node.hasOptInSpan = true; } @@ -1088,9 +1074,9 @@ public class SignUtils records.addAll(nsec3s); NSEC3PARAMRecord nsec3param = new NSEC3PARAMRecord(zonename, DClass.IN, - nsec3param_ttl, - NSEC3Record.SHA1_DIGEST_ID, - (byte) 0, iterations, salt); + nsec3param_ttl, + NSEC3Record.SHA1_DIGEST_ID, + (byte) 0, iterations, salt); records.add(nsec3param); } @@ -1100,47 +1086,47 @@ public class SignUtils * the node itself, and for any potential empty non-terminals. * * @param node - * The node in question. + * The node in question. * @param zonename - * The zonename. + * The zonename. * @param salt - * The salt to use for the NSEC3 RRs + * The salt to use for the NSEC3 RRs * @param iterations - * The iterations to use for the NSEC3 RRs. + * The iterations to use for the NSEC3 RRs. * @param optIn - * If true, the NSEC3 will have the Opt-Out flag set. + * If true, the NSEC3 will have the Opt-Out flag set. * @param nsec3s - * The current list of NSEC3s -- this will be updated. + * The current list of NSEC3s -- this will be updated. * @throws NoSuchAlgorithmException */ private static void generateNSEC3ForNode(NodeInfo node, Name zonename, byte[] salt, - int iterations, boolean optIn, List nsec3s) - throws NoSuchAlgorithmException - { - if (node == null) return; - if (optIn && !node.isSecureNode) return; + int iterations, boolean optIn, List nsec3s) + throws NoSuchAlgorithmException { + if (node == null) + return; + if (optIn && !node.isSecureNode) + return; // Add our default types. - if (node.type == RR_NORMAL || (node.type == RR_DELEGATION && node.hasType(Type.DS))) - { + if (node.type == RR_NORMAL || (node.type == RR_DELEGATION && node.hasType(Type.DS))) { node.addType(Type.RRSIG); } - if (node.name.equals(zonename)) node.addType(Type.NSEC3PARAM); + if (node.name.equals(zonename)) + node.addType(Type.NSEC3PARAM); // Check for ENTs -- note this will generate duplicate ENTs because it // doesn't use any context. int ldiff = node.name.labels() - zonename.labels(); - for (int i = 1; i < ldiff; i++) - { + for (int i = 1; i < ldiff; i++) { Name n = new Name(node.name, i); log.fine("Generating ENT NSEC3 for " + n); ProtoNSEC3 nsec3 = generateNSEC3(n, zonename, node.ttl, salt, iterations, optIn, - null); + null); nsec3s.add(nsec3); } ProtoNSEC3 nsec3 = generateNSEC3(node.name, zonename, node.ttl, salt, iterations, - optIn, node.getTypes()); + optIn, node.getTypes()); nsec3s.add(nsec3); } @@ -1148,33 +1134,32 @@ public class SignUtils * Create a "prototype" NSEC3 record. Basically, a mutable NSEC3 record. * * @param name - * The original ownername to use. + * The original ownername to use. * @param zonename - * The zonename to use. + * The zonename to use. * @param ttl - * The TTL to use. + * The TTL to use. * @param salt - * The salt to use. + * The salt to use. * @param iterations - * The number of hash iterations to use. + * The number of hash iterations to use. * @param optIn - * The value of the Opt-Out flag. + * The value of the Opt-Out flag. * @param types - * The typecodes present at this name. + * The typecodes present at this name. * @return A mutable NSEC3 record. * * @throws NoSuchAlgorithmException */ private static ProtoNSEC3 generateNSEC3(Name name, Name zonename, long ttl, - byte[] salt, int iterations, boolean optIn, - int[] types) throws NoSuchAlgorithmException - { + byte[] salt, int iterations, boolean optIn, + int[] types) throws NoSuchAlgorithmException { byte[] hash = nsec3hash(name, NSEC3Record.SHA1_DIGEST_ID, iterations, salt); byte flags = (byte) (optIn ? 0x01 : 0x00); - + ProtoNSEC3 r = new ProtoNSEC3(hash, name, zonename, DClass.IN, ttl, - NSEC3Record.SHA1_DIGEST_ID, flags, iterations, salt, - null, types); + NSEC3Record.SHA1_DIGEST_ID, flags, iterations, salt, + null, types); log.finer("Generated: " + r); return r; @@ -1186,29 +1171,28 @@ public class SignUtils * will remove duplicates and finalize the records. * * @param nsec3s - * The list of ProtoNSEC3 objects + * The list of ProtoNSEC3 objects * @param ttl - * The TTL to assign to the finished NSEC3 records. In general, this - * should match the SOA minimum value for the zone. + * The TTL to assign to the finished NSEC3 records. In general, + * this + * should match the SOA minimum value for the zone. * @return The list of {@link org.xbill.DNS.NSEC3Record} objects. */ - private static List finishNSEC3s(List nsec3s, long ttl) - { - if (nsec3s == null) return null; + private static List finishNSEC3s(List nsec3s, long ttl) { + if (nsec3s == null) + return null; Collections.sort(nsec3s, new ProtoNSEC3.Comparator()); ProtoNSEC3 prev_nsec3 = null; ProtoNSEC3 cur_nsec3 = null; byte[] first_nsec3_hash = null; - for (ListIterator i = nsec3s.listIterator(); i.hasNext();) - { + for (ListIterator i = nsec3s.listIterator(); i.hasNext();) { cur_nsec3 = i.next(); // check to see if cur is a duplicate (by name) if (prev_nsec3 != null - && Arrays.equals(prev_nsec3.getOwner(), cur_nsec3.getOwner())) - { + && Arrays.equals(prev_nsec3.getOwner(), cur_nsec3.getOwner())) { log.fine("found duplicate NSEC3 (by name) -- merging type maps: " + prev_nsec3.getTypemap() + " and " + cur_nsec3.getTypemap()); i.remove(); @@ -1219,8 +1203,7 @@ public class SignUtils byte[] next = cur_nsec3.getOwner(); - if (prev_nsec3 == null) - { + if (prev_nsec3 == null) { prev_nsec3 = cur_nsec3; first_nsec3_hash = next; continue; @@ -1231,22 +1214,18 @@ public class SignUtils } // Handle last NSEC3. - if (prev_nsec3.getNext() == null) - { + if (prev_nsec3.getNext() == null) { // if prev_nsec3's next field hasn't been set, then it is the last // record (i.e., all remaining records were duplicates.) prev_nsec3.setNext(first_nsec3_hash); - } - else - { + } else { // otherwise, cur_nsec3 is the last record. cur_nsec3.setNext(first_nsec3_hash); } // Convert our ProtoNSEC3s to actual (immutable) NSEC3Record objects. List res = new ArrayList(nsec3s.size()); - for (ProtoNSEC3 p : nsec3s) - { + for (ProtoNSEC3 p : nsec3s) { p.setTTL(ttl); res.add(p.getNSEC3Record()); } @@ -1262,21 +1241,23 @@ public class SignUtils * listIterator.add operation. * * @param zonename - * the name of the zone apex, used to distinguish between - * authoritative and delegation NS RRsets. + * the name of the zone apex, used to distinguish between + * authoritative and delegation NS RRsets. * @param records - * a list of {@link org.xbill.DNS.Record}s in DNSSEC canonical order. + * a list of {@link org.xbill.DNS.Record}s in DNSSEC + * canonical order. * @param includeNames - * a list of names that should be in the NXT chain regardless. This - * may be null. + * a list of names that should be in the NXT chain + * regardless. This + * may be null. * @param beConservative - * if true, then Opt-In NXTs will only be generated where there is - * actually a span of insecure delegations. + * if true, then Opt-In NXTs will only be generated where + * there is + * actually a span of insecure delegations. */ public static void generateOptInNSECRecords(Name zonename, List records, - List includeNames, - boolean beConservative) - { + List includeNames, + boolean beConservative) { // This works by iterating over a known sorted list of records. NodeInfo last_node = null; @@ -1288,57 +1269,53 @@ public class SignUtils int backup; HashSet includeSet = null; - if (includeNames != null) - { + if (includeNames != null) { includeSet = new HashSet(includeNames); } - for (ListIterator i = records.listIterator(); i.hasNext();) - { + for (ListIterator i = records.listIterator(); i.hasNext();) { Record r = i.next(); Name r_name = r.getName(); int r_type = r.getType(); int r_sectype = recordSecType(zonename, r_name, r_type, last_cut, last_dname); // skip irrelevant records - if (r_sectype == RR_INVALID || r_sectype == RR_GLUE) continue; + if (r_sectype == RR_INVALID || r_sectype == RR_GLUE) + continue; // note our last delegation point so we can recognize glue. - if (r_sectype == RR_DELEGATION) last_cut = r_name; + if (r_sectype == RR_DELEGATION) + last_cut = r_name; - if (r_type == Type.DNAME) last_dname = r_name; + if (r_type == Type.DNAME) + last_dname = r_name; // first node -- initialize - if (current_node == null) - { + if (current_node == null) { current_node = new NodeInfo(r, r_sectype); current_node.addType(Type.RRSIG); continue; } // record name hasn't changed, so we are still on the same node. - if (r_name.equals(current_node.name)) - { + if (r_name.equals(current_node.name)) { current_node.addType(r_type); continue; } // If the name is in the set of included names, mark it as // secure. - if (includeSet != null && includeSet.contains(current_node.name)) - { + if (includeSet != null && includeSet.contains(current_node.name)) { current_node.isSecureNode = true; } - if (last_node != null && current_node.isSecureNode) - { + if (last_node != null && current_node.isSecureNode) { // generate a NSEC record. - if (beConservative && !last_node.hasOptInSpan) - { + if (beConservative && !last_node.hasOptInSpan) { last_node.addType(Type.NSEC); } NSECRecord nsec = new NSECRecord(last_node.name, last_node.dclass, last_node.ttl, - current_node.name, last_node.getTypes()); + current_node.name, last_node.getTypes()); // Note: we have to add this through the iterator, otherwise // the next access via the iterator will generate a // ConcurrencyModificationException. @@ -1352,12 +1329,9 @@ public class SignUtils log.finer("Generated: " + nsec); } - if (current_node.isSecureNode) - { + if (current_node.isSecureNode) { last_node = current_node; - } - else if (last_node != null) - { + } else if (last_node != null) { // last_node does not change -- last_node is essentially the // last *secure* node, and current_node is not secure. // However, we need to note the passing of the insecure node. @@ -1370,37 +1344,31 @@ public class SignUtils } // Generate next to last NSEC - if (last_node != null && current_node.isSecureNode) - { + if (last_node != null && current_node.isSecureNode) { // generate a NSEC record. - if (beConservative && !last_node.hasOptInSpan) - { + if (beConservative && !last_node.hasOptInSpan) { last_node.addType(Type.NSEC); } NSECRecord nsec = new NSECRecord(last_node.name, last_node.dclass, last_node.ttl, - current_node.name, last_node.getTypes()); + current_node.name, last_node.getTypes()); records.add(last_node.nsecIndex - 1, nsec); log.finer("Generated: " + nsec); } // Generate last NSEC NSECRecord nsec; - if (current_node.isSecureNode) - { - if (beConservative) - { + if (current_node.isSecureNode) { + if (beConservative) { current_node.addType(Type.NSEC); } nsec = new NSECRecord(current_node.name, current_node.dclass, current_node.ttl, - zonename, current_node.getTypes()); + zonename, current_node.getTypes()); // we can just tack this on the end as we are working on the // last node. records.add(nsec); - } - else - { + } else { nsec = new NSECRecord(last_node.name, last_node.dclass, last_node.ttl, zonename, - last_node.getTypes()); + last_node.getTypes()); // We need to tack this on after the last secure node, not the // end of the whole list. records.add(last_node.nsecIndex, nsec); @@ -1414,27 +1382,27 @@ public class SignUtils * records into their corresponding DS records in place. * * @param zonename - * the name of the zone, used to reliably distinguish the zone apex - * from other records. + * the name of the zone, used to reliably distinguish the zone + * apex + * from other records. * @param records - * a list of {@link org.xbill.DNS.Record} objects. + * a list of {@link org.xbill.DNS.Record} objects. * @param digest_alg - * The digest algorithm to use. + * The digest algorithm to use. */ - public static void generateDSRecords(Name zonename, List records, int digest_alg) - { + public static void generateDSRecords(Name zonename, List records, int digest_alg) { - for (ListIterator i = records.listIterator(); i.hasNext();) - { + for (ListIterator i = records.listIterator(); i.hasNext();) { Record r = i.next(); - if (r == null) continue; // this should never be true. + if (r == null) + continue; // this should never be true. Name r_name = r.getName(); - if (r_name == null) continue; // this should never be true. + if (r_name == null) + continue; // this should never be true. // Convert non-zone level KEY records into DS records. - if (r.getType() == Type.DNSKEY && !r_name.equals(zonename)) - { + if (r.getType() == Type.DNSKEY && !r_name.equals(zonename)) { DSRecord ds = calculateDSRecord((DNSKEYRecord) r, digest_alg, r.getTTL()); i.set(ds); @@ -1446,19 +1414,16 @@ public class SignUtils * Given a zone, remove all records that are generated. * * @param zonename - * the name of the zone. + * the name of the zone. * @param records - * a list of {@link org.xbill.DNS.Record} objects. + * a list of {@link org.xbill.DNS.Record} objects. */ - public static void removeGeneratedRecords(Name zonename, List records) - { - for (Iterator i = records.iterator(); i.hasNext();) - { + public static void removeGeneratedRecords(Name zonename, List records) { + for (Iterator i = records.iterator(); i.hasNext();) { Record r = (Record) i.next(); if (r.getType() == Type.RRSIG || r.getType() == Type.NSEC - || r.getType() == Type.NSEC3 || r.getType() == Type.NSEC3PARAM) - { + || r.getType() == Type.NSEC3 || r.getType() == Type.NSEC3PARAM) { i.remove(); } } @@ -1470,21 +1435,18 @@ public class SignUtils * type. * * @param records - * a list of {@link org.xbill.DNS.Record} object, in sorted order. + * a list of {@link org.xbill.DNS.Record} object, in sorted + * order. */ - public static void removeDuplicateRecords(List records) - { + public static void removeDuplicateRecords(List records) { Record lastrec = null; - for (Iterator i = records.iterator(); i.hasNext();) - { + for (Iterator i = records.iterator(); i.hasNext();) { Record r = i.next(); - if (lastrec == null) - { + if (lastrec == null) { lastrec = r; continue; } - if (lastrec.equals(r)) - { + if (lastrec.equals(r)) { i.remove(); continue; } @@ -1496,37 +1458,37 @@ public class SignUtils * Given a DNSKEY record, generate the DS record from it. * * @param keyrec - * the KEY record in question. + * the KEY record in question. * @param digest_alg - * The digest algorithm (SHA-1, SHA-256, etc.). + * The digest algorithm (SHA-1, SHA-256, etc.). * @param ttl - * the desired TTL for the generated DS record. If zero, or negative, - * the original KEY RR's TTL will be used. + * the desired TTL for the generated DS record. If zero, or + * negative, + * the original KEY RR's TTL will be used. * @return the corresponding {@link org.xbill.DNS.DSRecord} */ - public static DSRecord calculateDSRecord(DNSKEYRecord keyrec, int digest_alg, long ttl) - { - if (keyrec == null) return null; + public static DSRecord calculateDSRecord(DNSKEYRecord keyrec, int digest_alg, long ttl) { + if (keyrec == null) + return null; - if (ttl <= 0) ttl = keyrec.getTTL(); + if (ttl <= 0) + ttl = keyrec.getTTL(); DNSOutput os = new DNSOutput(); os.writeByteArray(keyrec.getName().toWireCanonical()); os.writeByteArray(keyrec.rdataToWireCanonical()); - try - { + try { byte[] digest; MessageDigest md; - switch (digest_alg) - { - case DSRecord.SHA1_DIGEST_ID: + switch (digest_alg) { + case DNSSEC.Digest.SHA1: md = MessageDigest.getInstance("SHA"); digest = md.digest(os.toByteArray()); break; - case DSRecord.SHA256_DIGEST_ID: + case DNSSEC.Digest.SHA256: md = MessageDigest.getInstance("SHA-256"); digest = md.digest(os.toByteArray()); break; @@ -1535,12 +1497,10 @@ public class SignUtils } return new DSRecord(keyrec.getName(), keyrec.getDClass(), ttl, - keyrec.getFootprint(), keyrec.getAlgorithm(), digest_alg, - digest); + keyrec.getFootprint(), keyrec.getAlgorithm(), digest_alg, + digest); - } - catch (NoSuchAlgorithmException e) - { + } catch (NoSuchAlgorithmException e) { log.severe(e.toString()); return null; } @@ -1550,24 +1510,22 @@ public class SignUtils * Calculate an NSEC3 hash based on a DNS name and NSEC3 hash parameters. * * @param n - * The name to hash. + * The name to hash. * @param hash_algorithm - * The hash algorithm to use. + * The hash algorithm to use. * @param iterations - * The number of iterations to do. + * The number of iterations to do. * @param salt - * The salt to use. + * The salt to use. * @return The calculated hash as a byte array. * @throws NoSuchAlgorithmException - * If the hash algorithm is unrecognized. + * If the hash algorithm is unrecognized. */ public static byte[] nsec3hash(Name n, int hash_algorithm, int iterations, byte[] salt) - throws NoSuchAlgorithmException - { + throws NoSuchAlgorithmException { MessageDigest md; - switch (hash_algorithm) - { + switch (hash_algorithm) { case NSEC3Record.SHA1_DIGEST_ID: md = MessageDigest.getInstance("SHA1"); break; @@ -1579,11 +1537,9 @@ public class SignUtils // Construct our wire form. byte[] wire_name = n.toWireCanonical(); byte[] res = wire_name; // for the first iteration. - for (int i = 0; i <= iterations; i++) - { + for (int i = 0; i <= iterations; i++) { // Concatenate the salt, if it exists. - if (salt != null) - { + if (salt != null) { byte[] concat = new byte[res.length + salt.length]; System.arraycopy(res, 0, concat, 0, res.length); System.arraycopy(salt, 0, concat, res.length, salt.length); diff --git a/src/main/java/com/verisignlabs/dnssec/security/TypeMap.java b/src/main/java/com/verisignlabs/dnssec/security/TypeMap.java index 5003d9b..84542cd 100644 --- a/src/main/java/com/verisignlabs/dnssec/security/TypeMap.java +++ b/src/main/java/com/verisignlabs/dnssec/security/TypeMap.java @@ -1,7 +1,19 @@ -// $Id$ +// Copyright (C) 2004, 2022 Verisign, Inc. // -// Copyright (C) 2004 Verisign, Inc. - +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License, or (at your option) any later version. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 +// USA package com.verisignlabs.dnssec.security; import java.util.Arrays; @@ -18,45 +30,39 @@ import org.xbill.DNS.Type; * DNSjava: {@link org.xbill.DNS.TypeBitmap}. */ -public class TypeMap -{ +public class TypeMap { private static final Integer[] integerArray = new Integer[0]; private static final byte[] emptyBitmap = new byte[0]; - private Set typeSet; + private Set typeSet; - public TypeMap() - { + public TypeMap() { this.typeSet = new HashSet(); } /** Add the given type to the typemap. */ - public void set(int type) - { + public void set(int type) { typeSet.add(type); } /** Remove the given type from the type map. */ - public void clear(int type) - { + public void clear(int type) { typeSet.remove(type); } /** @return true if the given type is present in the type map. */ - public boolean get(int type) - { + public boolean get(int type) { return typeSet.contains(type); } /** * Given an array of DNS type code, construct a TypeMap object. */ - public static TypeMap fromTypes(int[] types) - { + public static TypeMap fromTypes(int[] types) { TypeMap m = new TypeMap(); - if (types == null) return m; - for (int i = 0; i < types.length; i++) - { + if (types == null) + return m; + for (int i = 0; i < types.length; i++) { m.set(types[i]); } @@ -67,25 +73,20 @@ public class TypeMap * Given an array of bytes representing a wire-format type map, construct the * TypeMap object. */ - public static TypeMap fromBytes(byte[] map) - { + public static TypeMap fromBytes(byte[] map) { int m = 0; TypeMap typemap = new TypeMap(); int page; int byte_length; - while (m < map.length) - { + while (m < map.length) { page = map[m++]; byte_length = map[m++]; - for (int i = 0; i < byte_length; i++) - { - for (int j = 0; j < 8; j++) - { - if ((map[m + i] & (1 << (7 - j))) != 0) - { + for (int i = 0; i < byte_length; i++) { + for (int j = 0; j < 8; j++) { + if ((map[m + i] & (1 << (7 - j))) != 0) { typemap.set((page << 8) + (i * 8) + j); } } @@ -99,12 +100,10 @@ public class TypeMap /** * Given list of type mnemonics, construct a TypeMap object. */ - public static TypeMap fromString(String types) - { + public static TypeMap fromString(String types) { TypeMap typemap = new TypeMap(); - for (String type : types.split("\\s+")) - { + for (String type : types.split("\\s+")) { typemap.set(Type.value(type)); } @@ -112,24 +111,22 @@ public class TypeMap } /** @return the normal string representation of the typemap. */ - public String toString() - { + public String toString() { int[] types = getTypes(); Arrays.sort(types); StringBuffer sb = new StringBuffer(); - for (int i = 0; i < types.length; i++) - { - if (i > 0) sb.append(" "); + for (int i = 0; i < types.length; i++) { + if (i > 0) + sb.append(" "); sb.append(Type.string(types[i])); } return sb.toString(); } - protected static void mapToWire(DNSOutput out, int[] types, int base, int start, int end) - { + protected static void mapToWire(DNSOutput out, int[] types, int base, int start, int end) { // calculate the length of this map by looking at the largest // typecode in this section. int max_type = types[end - 1] & 0xFF; @@ -144,22 +141,20 @@ public class TypeMap byte[] map = new byte[map_length]; // for each type in our sub-array, set its corresponding bit in the map. - for (int i = start; i < end; i++) - { + for (int i = start; i < end; i++) { map[(types[i] & 0xFF) / 8] |= (1 << (7 - types[i] % 8)); } // write out the resulting binary bitmap. - for (int i = 0; i < map.length; i++) - { + for (int i = 0; i < map.length; i++) { out.writeU8(map[i]); } } - public byte[] toWire() - { + public byte[] toWire() { int[] types = getTypes(); - if (types.length == 0) return emptyBitmap; + if (types.length == 0) + return emptyBitmap; Arrays.sort(types); @@ -168,12 +163,11 @@ public class TypeMap DNSOutput out = new DNSOutput(); - for (int i = 0; i < types.length; i++) - { + for (int i = 0; i < types.length; i++) { int base = (types[i] >> 8) & 0xFF; - if (base == mapbase) continue; - if (mapstart >= 0) - { + if (base == mapbase) + continue; + if (mapstart >= 0) { mapToWire(out, types, mapbase, mapstart, i); } mapbase = base; @@ -184,26 +178,22 @@ public class TypeMap return out.toByteArray(); } - public int[] getTypes() - { + public int[] getTypes() { Integer[] a = (Integer[]) typeSet.toArray(integerArray); int[] res = new int[a.length]; - for (int i = 0; i < res.length; i++) - { + for (int i = 0; i < res.length; i++) { res[i] = a[i].intValue(); } return res; } - public static int[] fromWireToTypes(byte[] wire_fmt) - { + public static int[] fromWireToTypes(byte[] wire_fmt) { return TypeMap.fromBytes(wire_fmt).getTypes(); } - public static byte[] fromTypesToWire(int[] types) - { + public static byte[] fromTypesToWire(int[] types) { return TypeMap.fromTypes(types).toWire(); } diff --git a/src/main/java/com/verisignlabs/dnssec/security/ZoneUtils.java b/src/main/java/com/verisignlabs/dnssec/security/ZoneUtils.java index 02cb2e2..209c27d 100644 --- a/src/main/java/com/verisignlabs/dnssec/security/ZoneUtils.java +++ b/src/main/java/com/verisignlabs/dnssec/security/ZoneUtils.java @@ -1,6 +1,4 @@ -// $Id$ -// -// Copyright (C) 2003 VeriSign, Inc. +// Copyright (C) 2003, 2022 Verisign, Inc. // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public @@ -24,11 +22,11 @@ import java.io.FileWriter; import java.io.IOException; import java.io.PrintWriter; import java.util.ArrayList; -import java.util.Iterator; import java.util.List; import org.xbill.DNS.Master; import org.xbill.DNS.Name; +import org.xbill.DNS.RRSIGRecord; import org.xbill.DNS.RRset; import org.xbill.DNS.Record; import org.xbill.DNS.Type; @@ -36,44 +34,42 @@ import org.xbill.DNS.Type; /** * This class contains a bunch of utility methods that are generally useful in * manipulating zones. - * - * @author David Blacka (original) - * @author $Author$ - * @version $Revision$ + * + * @author David Blacka */ -public class ZoneUtils -{ +public class ZoneUtils { /** * Load a zone file. - * + * * @param zonefile - * the filename/path of the zonefile to read. + * the filename/path of the zonefile to read. * @param origin - * the origin to use for the zonefile (may be null if the origin is - * specified in the zone file itself). + * the origin to use for the zonefile (may be null if the origin + * is + * specified in the zone file itself). * @return a {@link java.util.List} of {@link org.xbill.DNS.Record} objects. * @throws IOException - * if something goes wrong reading the zone file. + * if something goes wrong reading the zone file. */ - public static List readZoneFile(String zonefile, Name origin) throws IOException - { + public static List readZoneFile(String zonefile, Name origin) throws IOException { ArrayList records = new ArrayList(); Master m; - if (zonefile.equals("-")) - { - m = new Master(System.in); - } - else - { - m = new Master(zonefile, origin); - } + try { + if (zonefile.equals("-")) { + m = new Master(System.in); + } else { + m = new Master(zonefile, origin); + } - Record r = null; + Record r = null; - while ((r = m.nextRecord()) != null) - { - records.add(r); + while ((r = m.nextRecord()) != null) { + + records.add(r); + } + } catch (IOException e) { + e.printStackTrace(); } return records; @@ -81,28 +77,25 @@ public class ZoneUtils /** * Write the records out into a zone file. - * + * * @param records - * a {@link java.util.List} of {@link org.xbill.DNS.Record} objects - * forming a zone. + * a {@link java.util.List} of {@link org.xbill.DNS.Record} + * objects + * forming a zone. * @param zonefile - * the file to write to. If null or equal to "-", System.out is used. + * the file to write to. If null or equal to "-", System.out is + * used. */ - public static void writeZoneFile(List records, String zonefile) throws IOException - { + public static void writeZoneFile(List records, String zonefile) throws IOException { PrintWriter out = null; - if (zonefile == null || zonefile.equals("-")) - { + if (zonefile == null || zonefile.equals("-")) { out = new PrintWriter(System.out); - } - else - { + } else { out = new PrintWriter(new BufferedWriter(new FileWriter(zonefile))); } - for (Record r : records) - { + for (Record r : records) { out.println(r); } @@ -111,56 +104,43 @@ public class ZoneUtils /** * Given just the list of records, determine the zone name (origin). - * + * * @param records - * a list of {@link org.xbill.DNS.Record} objects. + * a list of {@link org.xbill.DNS.Record} objects. * @return the zone name, if found. null if one couldn't be found. */ - public static Name findZoneName(List records) - { - for (Record r : records) - { - int type = r.getType(); - - if (type == Type.SOA) return r.getName(); + public static Name findZoneName(List records) { + for (Record r : records) { + if (r.getType() == Type.SOA) { + return r.getName(); + } } return null; } - public static List findRRs(List records, Name name, int type) - { + public static List findRRs(List records, Name name, int type) { List res = new ArrayList(); - for (Record r : records) - { - if (r.getName().equals(name) && r.getType() == type) - { + for (Record r : records) { + if (r.getName().equals(name) && r.getType() == type) { res.add(r); } } - return res; } /** This is an alternate way to format an RRset into a string */ - @SuppressWarnings("unchecked") - public static String rrsetToString(RRset rrset, boolean includeSigs) - { + public static String rrsetToString(RRset rrset, boolean includeSigs) { StringBuilder out = new StringBuilder(); - for (Iterator i = rrset.rrs(false); i.hasNext();) - { - Record r = i.next(); + for (Record r : rrset.rrs(false)) { out.append(r.toString()); out.append("\n"); } - if (includeSigs) - { - for (Iterator i = rrset.sigs(); i.hasNext();) - { - Record r = i.next(); - out.append(r.toString()); + if (includeSigs) { + for (RRSIGRecord s : rrset.sigs()) { + out.append(s.toString()); out.append("\n"); } } diff --git a/src/main/java/com/verisignlabs/dnssec/security/ZoneVerifier.java b/src/main/java/com/verisignlabs/dnssec/security/ZoneVerifier.java index fb49d56..079d0ea 100644 --- a/src/main/java/com/verisignlabs/dnssec/security/ZoneVerifier.java +++ b/src/main/java/com/verisignlabs/dnssec/security/ZoneVerifier.java @@ -1,6 +1,4 @@ -// $Id: DnsSecVerifier.java 172 2009-08-23 19:13:42Z davidb $ -// -// Copyright (C) 2010 Verisign, Inc. +// Copyright (C) 2010, 2022 Verisign, Inc. // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public @@ -49,62 +47,53 @@ import org.xbill.DNS.utils.base32; * verifying signatures, this class will also detect invalid NSEC and NSEC3 * chains. * - * @author David Blacka (original) - * @author $Author: davidb $ - * @version $Revision: 172 $ + * @author David Blacka */ -public class ZoneVerifier -{ +public class ZoneVerifier { private SortedMap> mNodeMap; - private HashMap mRRsetMap; - private SortedMap mNSECMap; - private SortedMap mNSEC3Map; - private Name mZoneName; - private DNSSECType mDNSSECType; - private NSEC3PARAMRecord mNSEC3params; - private boolean mIgnoreDuplicateRRs; + private HashMap mRRsetMap; + private SortedMap mNSECMap; + private SortedMap mNSEC3Map; + private Name mZoneName; + private DNSSECType mDNSSECType; + private NSEC3PARAMRecord mNSEC3params; + private boolean mIgnoreDuplicateRRs; - private DnsSecVerifier mVerifier; - private base32 mBase32; - private ByteArrayComparator mBAcmp; + private DnsSecVerifier mVerifier; + private base32 mBase32; + private ByteArrayComparator mBAcmp; - private Logger log = Logger.getLogger("ZoneVerifier"); + private Logger log = Logger.getLogger("ZoneVerifier"); // The various types of signed zones. - enum DNSSECType - { + enum DNSSECType { UNSIGNED, NSEC, NSEC3, NSEC3_OPTOUT; } // The types of nodes (a node consists of all RRs with the same name). - enum NodeType - { + enum NodeType { NORMAL, DELEGATION, GLUE; } /** * This is a subclass of {@link org.xbill.DNS.RRset} that adds a "mark". */ - private class MarkRRset extends RRset - { + private class MarkRRset extends RRset { private static final long serialVersionUID = 1L; - private boolean mIsMarked = false; + private boolean mIsMarked = false; - boolean getMark() - { + boolean getMark() { return mIsMarked; } - void setMark(boolean value) - { + void setMark(boolean value) { mIsMarked = value; } } - public ZoneVerifier() - { + public ZoneVerifier() { mVerifier = new DnsSecVerifier(); mBase32 = new base32(base32.Alphabet.BASE32HEX, false, true); mBAcmp = new ByteArrayComparator(); @@ -112,94 +101,78 @@ public class ZoneVerifier } /** @return the DnsSecVerifier object used to verify individual RRsets. */ - public DnsSecVerifier getVerifier() - { + public DnsSecVerifier getVerifier() { return mVerifier; } - public void setIgnoreDuplicateRRs(boolean value) - { + public void setIgnoreDuplicateRRs(boolean value) { mIgnoreDuplicateRRs = value; } - private static String key(Name n, int type) - { + private static String key(Name n, int type) { return n.toString() + ':' + type; } - @SuppressWarnings("rawtypes") - private boolean addRRtoRRset(RRset rrset, Record rr) - { - if (mIgnoreDuplicateRRs) - { + private boolean addRRtoRRset(RRset rrset, Record rr) { + if (mIgnoreDuplicateRRs) { rrset.addRR(rr); return true; } - Iterator i = (rr instanceof RRSIGRecord) ? rrset.sigs() : rrset.rrs(); - for ( ; i.hasNext(); ) - { - Record record = (Record) i.next(); - if (rr.equals(record)) return false; + if (rr instanceof RRSIGRecord) { + for (RRSIGRecord sigrec : rrset.sigs()) { + if (rr.equals(sigrec)) { + return false; + } + } + } else { + for (Record rec : rrset.rrs()) { + if (rr.equals(rec)) { + return false; + } + } } + rrset.addRR(rr); return true; } /** * Add a record to the various maps. + * * @return TODO */ - private boolean addRR(Record r) - { - Name r_name = r.getName(); - int r_type = r.getType(); - if (r_type == Type.RRSIG) r_type = ((RRSIGRecord) r).getTypeCovered(); + private boolean addRR(Record r) { + Name n = r.getName(); + int t = r.getType(); + if (t == Type.RRSIG) + t = ((RRSIGRecord) r).getTypeCovered(); // Add NSEC and NSEC3 RRs to their respective maps - if (r_type == Type.NSEC) - { - if (mNSECMap == null) mNSECMap = new TreeMap(); - MarkRRset rrset = mNSECMap.get(r_name); - if (rrset == null) - { - rrset = new MarkRRset(); - mNSECMap.put(r_name, rrset); + if (t == Type.NSEC) { + if (mNSECMap == null) { + mNSECMap = new TreeMap<>(); } - + MarkRRset rrset = mNSECMap.computeIfAbsent(n, k -> new MarkRRset()); return addRRtoRRset(rrset, r); } - if (r_type == Type.NSEC3) - { - if (mNSEC3Map == null) mNSEC3Map = new TreeMap(); - MarkRRset rrset = mNSEC3Map.get(r_name); - if (rrset == null) - { - rrset = new MarkRRset(); - mNSEC3Map.put(r_name, rrset); + if (t == Type.NSEC3) { + if (mNSEC3Map == null) { + mNSEC3Map = new TreeMap<>(); } + MarkRRset rrset = mNSECMap.computeIfAbsent(n, k -> new MarkRRset()); return addRRtoRRset(rrset, r); } // Add the name and type to the node map - Set typeset = mNodeMap.get(r_name); - if (typeset == null) - { - typeset = new HashSet(); - mNodeMap.put(r_name, typeset); - } + Set typeset = mNodeMap.computeIfAbsent(n, k -> new HashSet<>()); typeset.add(r.getType()); // add the original type // Add the record to the RRset map - String k = key(r_name, r_type); - RRset rrset = mRRsetMap.get(k); - if (rrset == null) - { - rrset = new RRset(); - mRRsetMap.put(k, rrset); - } + String k = key(n, t); + RRset rrset = mRRsetMap.computeIfAbsent(k, k2 -> new RRset()); return addRRtoRRset(rrset, r); } @@ -207,14 +180,12 @@ public class ZoneVerifier * Given a record, determine the DNSSEC signing type. If the record doesn't * determine that, DNSSECType.UNSIGNED is returned */ - private DNSSECType determineDNSSECType(Record r) - { - if (r.getType() == Type.NSEC) return DNSSECType.NSEC; - if (r.getType() == Type.NSEC3) - { + private DNSSECType determineDNSSECType(Record r) { + if (r.getType() == Type.NSEC) + return DNSSECType.NSEC; + if (r.getType() == Type.NSEC3) { NSEC3Record nsec3 = (NSEC3Record) r; - if ((nsec3.getFlags() & NSEC3Record.Flags.OPT_OUT) == NSEC3Record.Flags.OPT_OUT) - { + if ((nsec3.getFlags() & NSEC3Record.Flags.OPT_OUT) == NSEC3Record.Flags.OPT_OUT) { return DNSSECType.NSEC3_OPTOUT; } return DNSSECType.NSEC3; @@ -230,39 +201,39 @@ public class ZoneVerifier * @param records * @return TODO */ - private int calculateNodes(List records) - { - mNodeMap = new TreeMap>(); - mRRsetMap = new HashMap(); + private int calculateNodes(List records) { + mNodeMap = new TreeMap<>(); + mRRsetMap = new HashMap<>(); // The zone is unsigned until we get a clue otherwise. mDNSSECType = DNSSECType.UNSIGNED; int errors = 0; - for (Record r : records) - { - Name r_name = r.getName(); - int r_type = r.getType(); + for (Record r : records) { + Name n = r.getName(); + int t = r.getType(); // Add the record to the various maps. boolean res = addRR(r); - if (!res) - { + if (!res) { log.warning("Record '" + r + "' detected as a duplicate"); errors++; } // Learn some things about the zone as we do this pass. - if (r_type == Type.SOA) mZoneName = r_name; - if (r_type == Type.NSEC3PARAM) mNSEC3params = (NSEC3PARAMRecord) r; - if (r_type == Type.DNSKEY) { + if (t == Type.SOA) + mZoneName = n; + if (t == Type.NSEC3PARAM) + mNSEC3params = (NSEC3PARAMRecord) r; + if (t == Type.DNSKEY) { DNSKEYRecord dnskey = (DNSKEYRecord) r; mVerifier.addTrustedKey(dnskey); log.info("Adding trusted key: " + dnskey + " ; keytag = " - + dnskey.getFootprint()); + + dnskey.getFootprint()); } - if (mDNSSECType == DNSSECType.UNSIGNED) mDNSSECType = determineDNSSECType(r); + if (mDNSSECType == DNSSECType.UNSIGNED) + mDNSSECType = determineDNSSECType(r); } return errors; @@ -272,37 +243,40 @@ public class ZoneVerifier * Given a name, typeset, and name of the last zone cut, determine the node * type. */ - private NodeType determineNodeType(Name n, Set typeset, Name last_cut) - { + private NodeType determineNodeType(Name n, Set typeset, Name last_cut) { // All RRs at the zone apex are normal - if (n.equals(mZoneName)) return NodeType.NORMAL; + if (n.equals(mZoneName)) + return NodeType.NORMAL; - // If the node is not below the zone itself, we will treat it as glue (it is really junk). - if (!n.subdomain(mZoneName)) - { + // If the node is not below the zone itself, we will treat it as glue (it is + // really junk). + if (!n.subdomain(mZoneName)) { return NodeType.GLUE; } // If the node is below a zone cut (either a delegation or DNAME), it is // glue. - if (last_cut != null && n.subdomain(last_cut) && !n.equals(last_cut)) - { + if (last_cut != null && n.subdomain(last_cut) && !n.equals(last_cut)) { return NodeType.GLUE; } // If the node has a NS record it is a delegation. - if (typeset.contains(new Integer(Type.NS))) return NodeType.DELEGATION; + if (typeset.contains(Integer.valueOf(Type.NS))) + return NodeType.DELEGATION; return NodeType.NORMAL; } - private Set cleanupDelegationTypeset(Set typeset) - { - Set t = new HashSet(); - if (typeset.contains(Type.NS)) t.add(Type.NS); - if (typeset.contains(Type.DS)) t.add(Type.DS); - if (typeset.contains(Type.RRSIG)) t.add(Type.RRSIG); + private Set cleanupDelegationTypeset(Set typeset) { + Set t = new HashSet<>(); + if (typeset.contains(Type.NS)) + t.add(Type.NS); + if (typeset.contains(Type.DS)) + t.add(Type.DS); + if (typeset.contains(Type.RRSIG)) + t.add(Type.RRSIG); - if (!typeset.equals(t)) return t; + if (!typeset.equals(t)) + return t; return typeset; } @@ -310,13 +284,11 @@ public class ZoneVerifier * For each node, determine which RRsets should be signed, verify those, and * determine which nodes get NSEC or NSEC3 RRs and verify those. */ - private int processNodes() throws NoSuchAlgorithmException, TextParseException - { + private int processNodes() throws NoSuchAlgorithmException, TextParseException { int errors = 0; Name last_cut = null; - for (Map.Entry> entry : mNodeMap.entrySet()) - { + for (Map.Entry> entry : mNodeMap.entrySet()) { Name n = entry.getKey(); Set typeset = entry.getValue(); @@ -324,21 +296,22 @@ public class ZoneVerifier log.finest("Node " + n + " is type " + ntype); // we can ignore glue/invalid RRs. - if (ntype == NodeType.GLUE) continue; + if (ntype == NodeType.GLUE) + continue; // record the last zone cut if this node is a zone cut. - if (ntype == NodeType.DELEGATION || typeset.contains(Type.DNAME)) - { + if (ntype == NodeType.DELEGATION || typeset.contains(Type.DNAME)) { last_cut = n; } // check all of the RRsets that should be signed - for (int type : typeset) - { - if (type == Type.RRSIG) continue; + for (int type : typeset) { + if (type == Type.RRSIG) + continue; // at delegation points, only DS RRs are signed (and NSEC, but those are // checked separately) - if (ntype == NodeType.DELEGATION && type != Type.DS) continue; + if (ntype == NodeType.DELEGATION && type != Type.DS) + continue; // otherwise, verify the RRset. String k = key(n, type); RRset rrset = mRRsetMap.get(k); @@ -348,13 +321,11 @@ public class ZoneVerifier // cleanup the typesets of delegation nodes. // the only types that should be there are NS, DS and RRSIG. - if (ntype == NodeType.DELEGATION) - { + if (ntype == NodeType.DELEGATION) { typeset = cleanupDelegationTypeset(typeset); } - switch (mDNSSECType) - { + switch (mDNSSECType) { case NSEC: // all nodes with NSEC records have NSEC and RRSIG types typeset.add(Type.NSEC); @@ -366,8 +337,7 @@ public class ZoneVerifier break; case NSEC3_OPTOUT: if (ntype == NodeType.NORMAL - || (ntype == NodeType.DELEGATION && typeset.contains(Type.DS))) - { + || (ntype == NodeType.DELEGATION && typeset.contains(Type.DS))) { errors += processNSEC3(n, typeset, ntype); } break; @@ -378,99 +348,87 @@ public class ZoneVerifier return errors; } - private static String reasonListToString(List reasons) - { - if (reasons == null) return ""; - StringBuffer out = new StringBuffer(); - for (Iterator i = reasons.iterator(); i.hasNext();) - { + private static String reasonListToString(List reasons) { + if (reasons == null) + return ""; + StringBuilder out = new StringBuilder(); + for (Iterator i = reasons.iterator(); i.hasNext();) { out.append("Reason: "); out.append(i.next()); - if (i.hasNext()) out.append("\n"); + if (i.hasNext()) + out.append("\n"); } return out.toString(); } - @SuppressWarnings("unchecked") - private int processRRset(RRset rrset) - { - List reasons = new ArrayList(); + private int processRRset(RRset rrset) { + List reasons = new ArrayList<>(); boolean result = false; - for (Iterator i = rrset.sigs(); i.hasNext();) - { - RRSIGRecord sigrec = (RRSIGRecord) i.next(); + for (RRSIGRecord sigrec : rrset.sigs()) { boolean res = mVerifier.verifySignature(rrset, sigrec, reasons); - if (!res) - { + if (!res) { log.warning("Signature failed to verify RRset:\n rr: " + ZoneUtils.rrsetToString(rrset, false) + "\n sig: " + sigrec + "\n" + reasonListToString(reasons)); } - if (res) result = res; + if (res) + result = res; } String rrsetname = rrset.getName() + "/" + Type.string(rrset.getType()); - if (result) - { + if (result) { log.fine("RRset " + rrsetname + " verified."); - } - else - { + } else { log.warning("RRset " + rrsetname + " did not verify."); } return result ? 0 : 1; } - private String typesToString(int[] types) - { + private String typesToString(int[] types) { StringBuilder sb = new StringBuilder(); Arrays.sort(types); - for (int i = 0; i < types.length; ++i) - { - if (i != 0) sb.append(' '); + for (int i = 0; i < types.length; ++i) { + if (i != 0) + sb.append(' '); sb.append(Type.string(types[i])); } return sb.toString(); } - private String typesetToString(Set typeset) - { - if (typeset == null) return ""; + private String typesetToString(Set typeset) { + if (typeset == null) + return ""; int[] types = new int[typeset.size()]; int i = 0; - for (int type : typeset) - { + for (int type : typeset) { types[i++] = type; } return typesToString(types); } - private boolean checkTypeMap(Set typeset, int[] types) - { + private boolean checkTypeMap(Set typeset, int[] types) { // a null typeset means that we are expecting the typemap of an ENT, which // should be empty. - if (typeset == null) return types.length == 0; + if (typeset == null) + return types.length == 0; - Set compareTypeset = new HashSet(); - for (int i = 0; i < types.length; ++i) - { + Set compareTypeset = new HashSet<>(); + for (int i = 0; i < types.length; ++i) { compareTypeset.add(types[i]); } return typeset.equals(compareTypeset); } - private int processNSEC(Name n, Set typeset) - { + private int processNSEC(Name n, Set typeset) { MarkRRset rrset = mNSECMap.get(n); - if (n == null) - { + if (n == null) { log.warning("Missing NSEC for " + n); return 1; } @@ -482,8 +440,7 @@ public class ZoneVerifier NSECRecord nsec = (NSECRecord) rrset.first(); // check typemap - if (!checkTypeMap(typeset, nsec.getTypes())) - { + if (!checkTypeMap(typeset, nsec.getTypes())) { log.warning("Typemap for NSEC RR " + n + " did not match what was expected. Expected '" + typesetToString(typeset) + "', got '" + typesToString(nsec.getTypes())); @@ -496,32 +453,27 @@ public class ZoneVerifier return errors; } - private boolean shouldCheckENTs(Name n, Set typeset, NodeType ntype) - { + private boolean shouldCheckENTs(Name n, Set typeset, NodeType ntype) { // if we are just one (or zero) labels longer than the zonename, the node // can't create a ENT - if (n.labels() <= mZoneName.labels() + 1) return false; + if (n.labels() <= mZoneName.labels() + 1) + return false; // we probably won't ever get called for a GLUE node - if (ntype == NodeType.GLUE) return false; + if (ntype == NodeType.GLUE) + return false; // if we aren't doing opt-out, then all possible ENTs must be checked. - if (mDNSSECType == DNSSECType.NSEC3) return true; + if (mDNSSECType == DNSSECType.NSEC3) + return true; // if we are opt-out, and the node is an insecure delegation, don't check // ENTs. - if (ntype == NodeType.DELEGATION && !typeset.contains(Type.DS)) - { - return false; - } - - // otherwise, check ENTs. - return true; + return !(ntype == NodeType.DELEGATION && !typeset.contains(Type.DS)); } private int processNSEC3(Name n, Set typeset, NodeType ntype) - throws NoSuchAlgorithmException, TextParseException - { + throws NoSuchAlgorithmException, TextParseException { // calculate the NSEC3 RR name byte[] hash = mNSEC3params.hashName(n); @@ -529,8 +481,7 @@ public class ZoneVerifier Name hashname = new Name(hashstr, mZoneName); MarkRRset rrset = mNSEC3Map.get(hashname); - if (rrset == null) - { + if (rrset == null) { log.warning("Missing NSEC3 for " + hashname + " corresponding to " + n); return 1; } @@ -542,8 +493,7 @@ public class ZoneVerifier NSEC3Record nsec3 = (NSEC3Record) rrset.first(); // check typemap - if (!checkTypeMap(typeset, nsec3.getTypes())) - { + if (!checkTypeMap(typeset, nsec3.getTypes())) { log.warning("Typemap for NSEC3 RR " + hashname + " for " + n + " did not match what was expected. Expected '" + typesetToString(typeset) + "', got '" + typesToString(nsec3.getTypes()) + "'"); @@ -555,11 +505,9 @@ public class ZoneVerifier // check NSEC3 RRs for empty non-terminals. // this is recursive. - if (shouldCheckENTs(n, typeset, ntype)) - { + if (shouldCheckENTs(n, typeset, ntype)) { Name ent = new Name(n, 1); - if (mNodeMap.get(ent) == null) - { + if (mNodeMap.get(ent) == null) { errors += processNSEC3(ent, null, NodeType.NORMAL); } } @@ -567,24 +515,18 @@ public class ZoneVerifier return errors; } - private int processNSECChain() - { + private int processNSECChain() { int errors = 0; NSECRecord lastNSEC = null; - for (Iterator> i = mNSECMap.entrySet().iterator(); i.hasNext();) - { + for (Iterator> i = mNSECMap.entrySet().iterator(); i.hasNext();) { // check the internal ordering of the previous NSEC record. This avoids // looking at the last one, // which is different. - if (lastNSEC != null) - { - if (lastNSEC.getName().compareTo(lastNSEC.getNext()) >= 0) - { - log.warning("NSEC for " + lastNSEC.getName() - + " has next name >= owner but is not the last NSEC in the chain."); - errors++; - } + if (lastNSEC != null && lastNSEC.getName().compareTo(lastNSEC.getNext()) >= 0) { + log.warning("NSEC for " + lastNSEC.getName() + + " has next name >= owner but is not the last NSEC in the chain."); + errors++; } Map.Entry entry = i.next(); @@ -593,8 +535,7 @@ public class ZoneVerifier // check to see if the NSEC is marked. If not, it was not correlated to a // signed node. - if (!rrset.getMark()) - { + if (!rrset.getMark()) { log.warning("NSEC RR for " + n + " appears to be extra."); errors++; } @@ -604,30 +545,24 @@ public class ZoneVerifier // This is just a sanity check. If this isn't true, we are constructing // the // nsec map incorrectly. - if (!n.equals(nsec.getName())) - { + if (!n.equals(nsec.getName())) { log.warning("The NSEC in the map for name " + n + " has name " + nsec.getName()); errors++; } // If this is the first row, ensure that the owner name equals the zone // name - if (lastNSEC == null && !n.equals(mZoneName)) - { + if (lastNSEC == null && !n.equals(mZoneName)) { log.warning("The first NSEC in the chain does not match the zone name: name = " + n + " zonename = " + mZoneName); errors++; } // Check that the prior NSEC's next name equals this rows owner name. - if (lastNSEC != null) - { - if (!lastNSEC.getNext().equals(nsec.getName())) - { - log.warning("NSEC for " + lastNSEC.getName() - + " does not point to the next NSEC in the chain: " + n); - errors++; - } + if (lastNSEC != null && !lastNSEC.getNext().equals(nsec.getName())) { + log.warning("NSEC for " + lastNSEC.getName() + + " does not point to the next NSEC in the chain: " + n); + errors++; } lastNSEC = nsec; @@ -635,16 +570,14 @@ public class ZoneVerifier // check the internal ordering of the last NSEC in the chain // the ownername should be >= next name. - if (lastNSEC.getName().compareTo(lastNSEC.getNext()) < 0) - { + if (lastNSEC.getName().compareTo(lastNSEC.getNext()) < 0) { log.warning("The last NSEC RR in the chain did not have an owner >= next: owner = " + lastNSEC.getName() + " next = " + lastNSEC.getNext()); errors++; } // check to make sure it links to the first NSEC in the chain - if (!lastNSEC.getNext().equals(mZoneName)) - { + if (!lastNSEC.getNext().equals(mZoneName)) { log.warning("The last NSEC RR in the chain did not link to the first NSEC"); errors++; } @@ -652,8 +585,7 @@ public class ZoneVerifier return errors; } - private int compareNSEC3Hashes(Name owner, byte[] hash) - { + private int compareNSEC3Hashes(Name owner, byte[] hash) { // we will compare the binary images String ownerhashstr = owner.getLabelString(0); byte[] ownerhash = mBase32.fromString(ownerhashstr); @@ -661,25 +593,19 @@ public class ZoneVerifier return mBAcmp.compare(ownerhash, hash); } - private int processNSEC3Chain() - { + private int processNSEC3Chain() { int errors = 0; NSEC3Record lastNSEC3 = null; NSEC3Record firstNSEC3 = null; - for (Iterator> i = mNSEC3Map.entrySet().iterator(); i.hasNext();) - { + for (Iterator> i = mNSEC3Map.entrySet().iterator(); i.hasNext();) { // check the internal ordering of the previous NSEC3 record. This avoids // looking at the last one, // which is different. - if (lastNSEC3 != null) - { - if (compareNSEC3Hashes(lastNSEC3.getName(), lastNSEC3.getNext()) >= 0) - { - log.warning("NSEC3 for " + lastNSEC3.getName() - + " has next name >= owner but is not the last NSEC3 in the chain."); - errors++; - } + if (lastNSEC3 != null && compareNSEC3Hashes(lastNSEC3.getName(), lastNSEC3.getNext()) >= 0) { + log.warning("NSEC3 for " + lastNSEC3.getName() + + " has next name >= owner but is not the last NSEC3 in the chain."); + errors++; } Map.Entry entry = i.next(); @@ -688,8 +614,7 @@ public class ZoneVerifier // check to see if the NSEC is marked. If not, it was not correlated to a // signed node. - if (!rrset.getMark()) - { + if (!rrset.getMark()) { log.warning("NSEC3 RR for " + n + " appears to be extra."); errors++; } @@ -699,23 +624,19 @@ public class ZoneVerifier // This is just a sanity check. If this isn't true, we are constructing // the // nsec3 map incorrectly. - if (!n.equals(nsec3.getName())) - { + if (!n.equals(nsec3.getName())) { log.severe("The NSEC3 in the map for name " + n + " has name " + nsec3.getName()); errors++; } // note the first NSEC3 in the chain. - if (lastNSEC3 == null) - { + if (lastNSEC3 == null) { firstNSEC3 = nsec3; - } - else + } else // Check that the prior NSEC3's next hashed name equals this row's hashed // owner name. { - if (compareNSEC3Hashes(nsec3.getName(), lastNSEC3.getNext()) != 0) - { + if (compareNSEC3Hashes(nsec3.getName(), lastNSEC3.getNext()) != 0) { String nextstr = mBase32.toString(lastNSEC3.getNext()); log.warning("NSEC3 for " + lastNSEC3.getName() + " does not point to the next NSEC3 in the chain: " + nsec3.getName() @@ -729,8 +650,7 @@ public class ZoneVerifier // check the internal ordering of the last NSEC in the chain // the ownername should be >= next name. - if (compareNSEC3Hashes(lastNSEC3.getName(), lastNSEC3.getNext()) < 0) - { + if (compareNSEC3Hashes(lastNSEC3.getName(), lastNSEC3.getNext()) < 0) { String nextstr = mBase32.toString(lastNSEC3.getNext()); log.warning("The last NSEC3 RR in the chain did not have an owner >= next: owner = " + lastNSEC3.getName() + " next = " + nextstr); @@ -738,8 +658,7 @@ public class ZoneVerifier } // check to make sure it links to the first NSEC in the chain - if (compareNSEC3Hashes(firstNSEC3.getName(), lastNSEC3.getNext()) != 0) - { + if (compareNSEC3Hashes(firstNSEC3.getName(), lastNSEC3.getNext()) != 0) { log.warning("The last NSEC3 RR in the chain did not link to the first NSEC3"); errors++; } @@ -747,29 +666,22 @@ public class ZoneVerifier return errors; } - public int verifyZone(List records) throws NoSuchAlgorithmException, TextParseException - { + public int verifyZone(List records) throws NoSuchAlgorithmException, TextParseException { int errors = 0; errors += calculateNodes(records); errors += processNodes(); - if (mDNSSECType == DNSSECType.NSEC) - { + if (mDNSSECType == DNSSECType.NSEC) { errors += processNSECChain(); - } - else if (mDNSSECType == DNSSECType.NSEC3 || mDNSSECType == DNSSECType.NSEC3_OPTOUT) - { + } else if (mDNSSECType == DNSSECType.NSEC3 || mDNSSECType == DNSSECType.NSEC3_OPTOUT) { errors += processNSEC3Chain(); } - if (errors > 0) - { + if (errors > 0) { log.info("Zone " + mZoneName + " failed verification with " + errors + " errors"); - } - else - { + } else { log.info("Zone " + mZoneName + " verified with 0 errors"); }

8TxZ1y#*I3E6azP* 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 diff --git a/lib/dnsjava-3.5.1.jar b/lib/dnsjava-3.5.1.jar new file mode 100644 index 0000000000000000000000000000000000000000..6333f863a9df56283151c67bf4ff162052f2bd43 GIT binary patch literal 532006 zcmbTcV~}pqk}X=cZQHhOSM9QG+qSWH*|u%lwr%t6)7^3Vba$NlUcWEC^>5}}YewYA zF~`VMkOl@p0f2yj03c1BQ~~&>A0z+>fUKyBAg!dF82$G+001z6f;2e9KUM(!$1;U~ z8I1CG#s3MG6_k?{6IE8BlNC!*m9@iSMCht%{4p3TOHfBnB&!m@xeq8;A&eACmzE!9 z+udzqZ%zyTevj>f25h%T_J^u%k@?mMkz;rO zx-=MQPaOgrGxUg0C(#R%7bN! zG^l=eaRny@AXz9OHZSzuBU_qnCxSr(P#LKvnunDNmPvw^K#{I78xe3yP@31mjBYCLXtx=TZ{!-L4 zZVtQPI|2F8TSSg#m5)re`hF{WtwLc3%1q_*YrA)lR94jsc0M00H`GUF$;<%tT!VRn zEzmxb87(!XuEO+H&5s30_vZP7b(_4%##DLi|8& zn!5l?4@mw=4#!t~g%Ty3qeR!tII2>*yD1K?c9xjRWwmGeiZ-;oYSiadHc5**t<`Z` zok$jTjm4ofiIpyG7}Mf>@f^m(Rh&e2{*eA3KxD=Br4k1Q00{dF$^QhRyj#tGK{3KV z15rj&SX53~G)1}3_J9qc>wy}~YaO5*yM$u4kz6z12B^L?F}aJ63JJF%eo!DE`S8X~ zf;(n`M)T1yj+5DL+lyIlYvIBiKMt>(jh&&V=jW=VW8=*SC~9sQ_)=zNZEvn4pb($x z#@5a+qzbdDK5hWUd__=3jv;+4dZswb=lu5$@$(i>fa~w?@*JyD`R~)=hiGdP8Z-sVd#=Ee_VaXk~+q_qdvH&S154yXJsJzW&FOFyNxWKGaW1V<}zRbpeOU) zvFNU+?Z#V{cC!t`-MFR^_#gtE6I}&*7F%;0^K?UHyU&~8NweF8d64Vd;UWjxbyZEe9sHP2wG}Tj_6gXO% zvYE#Sljb>h1x88nnpCffwNf;jvCJP0vl~tGUbG05&pQu_yC*(AcL;B_MTx0MKw>w8 z=>#J5G!ZSGIR$`zzH{8YuK&lXC=UV4v3n0|qEVt>;l2%a5Q$Bu*y>Xfo#(_8KZ2%> zuD_BLu0TPl%tP}?MMz^zi2{rw%2>OI^9Vb2%AQLOq}e0{tf|=JTR0`)13U≷n)a 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%0D^LJOxkuz05ck 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