1 // SPDX-License-Identifier: BSD-2-Clause 2 package org.xbill.DNS; 3 4 import java.io.IOException; 5 import java.util.Date; 6 7 import org.xbill.DNS.DNSSEC.DNSSECException; 8 9 import junit.framework.TestCase; 10 11 public class DNSSECTest extends TestCase 12 { 13 private TXTRecord txt = new TXTRecord(Name.root, DClass.IN, 3600, "test"); 14 testECDSALeadingZeroUndersize()15 public void testECDSALeadingZeroUndersize() throws IOException, DNSSECException 16 { 17 DNSKEYRecord dnskey = (DNSKEYRecord) Record.fromString(Name.root, Type.DNSKEY, DClass.IN, 3600, 18 "256 3 13 HgcQzDrxDm641ASGyEF0MXrjDji4XDnWzjrY9VoIn5GfAvHpuqI2W8yihplAz6C/56Zxq1XbAHjLZATfhZFmaA==", Name.root); 19 RRSIGRecord rrsig = (RRSIGRecord) Record.fromString(Name.root, Type.RRSIG, DClass.IN, 3600, 20 "TXT 13 0 3600 19700101000003 19700101000000 46271 . dRwMEthIeGiucMcEcDmwixM8/LZcZ+W6lMM0KDSY5rwAGrm1j7tS/VU6xs+rpD5dSRmBYosinkWD6Jk3zRmyBQ==", Name.root); 21 22 RRset rrset = new RRset(); 23 rrset.addRR(txt); 24 rrset.addRR(rrsig); 25 DNSSEC.verify(rrset, rrsig, dnskey, new Date(60)); 26 } 27 testECDSALeadingZeroOversize()28 public void testECDSALeadingZeroOversize() throws IOException, DNSSECException 29 { 30 DNSKEYRecord dnskey = (DNSKEYRecord) Record.fromString(Name.root, Type.DNSKEY, DClass.IN, 3600, 31 "256 3 13 OYt2tO1n75q/Wb6CglqPVrU22f02clZehWamgXc9ZGPhVMAerzPR9/bhf1XxtC3xAR9riVuGh9CEPVvmiNqukQ==", Name.root); 32 RRSIGRecord rrsig = (RRSIGRecord) Record.fromString(Name.root, Type.RRSIG, DClass.IN, 3600, 33 "TXT 13 0 3600 19700101000003 19700101000000 25719 . m6sD/b0ZbfBXsQruhq5dYTnHGaA+PRTL5Y1W36rMdnGBb7eOJRRzDS5Wk5hZlrS4RUKQ/tKMCn7lsl9fn4U2lw==", Name.root); 34 35 RRset rrset = new RRset(); 36 rrset.addRR(txt); 37 rrset.addRR(rrsig); 38 DNSSEC.verify(rrset, rrsig, dnskey, new Date(60)); 39 } 40 testDSALeadingZeroUndersize()41 public void testDSALeadingZeroUndersize() throws DNSSECException, IOException 42 { 43 DNSKEYRecord dnskey = (DNSKEYRecord) Record.fromString(Name.root, Type.DNSKEY, DClass.IN, 3600, 44 "256 3 3 AJYu3cw2nLqOuyYO5rahJtk0bjjF/KaCzo4Syrom78z3EQ5SbbB4sF7ey80etKII864WF64B81uRpH5t9jQTxeEu0ImbzRMqzVDZkVG9xD7nN1kuF2eEcbJ6nPRO6RpJxRR9samq8kTwWkNNZIaTHS0UJxueNQMLcf1z2heQabMuKTVjDhwgYjVNDaIKbEFuUL55TKRAt3Xr7t5zCMLaujMvqNHOzCFEusXN5mXjJqAj8J0l4B4tbL7M4iIFZeXJDXGCEcsBbNrVAfFnlOO06B6dkB8L", Name.root); 45 RRSIGRecord rrsig = (RRSIGRecord) Record.fromString(Name.root, Type.RRSIG, DClass.IN, 3600l, 46 "TXT 3 0 3600 19700101000003 19700101000000 36714 . AAAycZeIdBGB7vjlFzd5+ZgV8IxGRLpLierdV1KO4SGIy707hKUXJRc=", Name.root); 47 48 RRset set = new RRset(); 49 set.addRR(txt); 50 set.addRR(rrsig); 51 DNSSEC.verify(set, rrsig, dnskey, new Date(60)); 52 } 53 testDSALeadingZeroOversize()54 public void testDSALeadingZeroOversize() throws DNSSECException, IOException 55 { 56 DNSKEYRecord dnskey = (DNSKEYRecord) Record.fromString(Name.root, Type.DNSKEY, DClass.IN, 3600, 57 "256 3 3 AJYu3cw2nLqOuyYO5rahJtk0bjjF/KaCzo4Syrom78z3EQ5SbbB4sF7ey80etKII864WF64B81uRpH5t9jQTxeEu0ImbzRMqzVDZkVG9xD7nN1kuF2eEcbJ6nPRO6RpJxRR9samq8kTwWkNNZIaTHS0UJxueNQMLcf1z2heQabMuKTVjDhwgYjVNDaIKbEFuUL55TKQflphJYUXcb2M3wKNGoXP7NufzhfVaDtiS44waWjC8IN98Ab+SPPfM4+xgTsgzWt8KvzL8hhqSW+4+5zjiQ6UG", Name.root); 58 RRSIGRecord rrsig = (RRSIGRecord) Record.fromString(Name.root, Type.RRSIG, DClass.IN, 3600l, 59 "TXT 3 0 3600 19700101000003 19700101000000 57407 . AIh8Bp0EFNszs3cB0gNatjWy8tBrgUAUe1gTHkVsm1pva1GYWOW/FbA=", Name.root); 60 61 RRset set = new RRset(); 62 set.addRR(txt); 63 set.addRR(rrsig); 64 DNSSEC.verify(set, rrsig, dnskey, new Date(60)); 65 } 66 } 67