Search in sources :

Example 56 with Name

use of org.xbill.DNS.Name in project dim by 1and1.

the class KeyGen method execute.

public void execute() throws Exception {
    JCEDnsSecSigner signer = new JCEDnsSecSigner();
    // Minor hack to make the owner name absolute.
    if (!state.owner.endsWith(".")) {
        state.owner = state.owner + ".";
    }
    Name owner_name = 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;
    log.fine("create key pair with (name = " + owner_name + ", 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);
    if (state.outputfile != null) {
        BINDKeyUtils.writeKeyFiles(state.outputfile, pair, state.keydir);
    } else {
        BINDKeyUtils.writeKeyFiles(pair, state.keydir);
        System.out.println(BINDKeyUtils.keyFileBase(pair));
    }
}
Also used : Name(org.xbill.DNS.Name)

Example 57 with Name

use of org.xbill.DNS.Name in project dim by 1and1.

the class SignKeyset method execute.

@SuppressWarnings("unchecked")
public void execute() throws Exception {
    // Read in the zone
    List<Record> records = ZoneUtils.readZoneFile(state.inputfile, null);
    if (records == null || records.size() == 0) {
        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();
    for (Record r : records) {
        if (r.getType() != Type.DNSKEY) {
            System.err.println("error: Non DNSKEY RR found in keyset: " + r);
            continue;
        }
        if (keysetName == null) {
            keysetName = r.getName();
        }
        if (!r.getName().equals(keysetName)) {
            System.err.println("error: DNSKEY with a different name found!");
            state.usage();
        }
        keyset.addRR(r);
    }
    if (keyset.size() == 0) {
        System.err.println("error: No DNSKEYs found in keyset file");
        state.usage();
    }
    // Load the key pairs.
    List<DnsKeyPair> keypairs = getKeys(state.keyFiles, 0, state.keyDirectory);
    // that match
    if (keypairs == null) {
        keypairs = findZoneKeys(state.keyDirectory, keysetName);
    }
    // If there *still* aren't any ZSKs defined, bail.
    if (keypairs == null || keypairs.size() == 0) {
        System.err.println("error: No signing keys could be determined.");
        state.usage();
    }
    // default the output file, if not set.
    if (state.outputfile == null) {
        if (keysetName.isAbsolute()) {
            state.outputfile = keysetName + "signed_keyset";
        } else {
            state.outputfile = keysetName + ".signed_keyset";
        }
    }
    JCEDnsSecSigner signer = new JCEDnsSecSigner();
    List<RRSIGRecord> sigs = signer.signRRset(keyset, keypairs, state.start, state.expire);
    for (RRSIGRecord s : sigs) {
        keyset.addRR(s);
    }
    // write out the signed RRset
    List<Record> signed_records = new ArrayList<Record>();
    for (Iterator<Record> i = keyset.rrs(); i.hasNext(); ) {
        signed_records.add(i.next());
    }
    for (Iterator<Record> i = keyset.sigs(); i.hasNext(); ) {
        signed_records.add(i.next());
    }
    // write out the signed zone
    ZoneUtils.writeZoneFile(signed_records, state.outputfile);
    if (state.verifySigs) {
        log.fine("verifying generated signatures");
        boolean res = verifySigs(keysetName, signed_records, keypairs);
        if (res) {
            System.out.println("Generated signatures verified");
        // log.info("Generated signatures verified");
        } else {
            System.out.println("Generated signatures did not verify.");
        // log.warn("Generated signatures did not verify.");
        }
    }
}
Also used : RRSIGRecord(org.xbill.DNS.RRSIGRecord) RRset(org.xbill.DNS.RRset) ArrayList(java.util.ArrayList) RRSIGRecord(org.xbill.DNS.RRSIGRecord) Record(org.xbill.DNS.Record) Name(org.xbill.DNS.Name)

Example 58 with Name

use of org.xbill.DNS.Name in project DSpace by DSpace.

the class DnsLookup method reverseDns.

/**
 * Resolve an IP address to a host name.
 *
 * @param hostIp dotted decimal IPv4 address.
 * @return name if resolved, or the address.
 * @throws IOException from infrastructure.
 */
public static String reverseDns(String hostIp) throws IOException {
    ConfigurationService configurationService = DSpaceServicesFactory.getInstance().getConfigurationService();
    Resolver res = new ExtendedResolver();
    // set the timeout, defaults to 200 milliseconds
    int timeout = configurationService.getIntProperty("usage-statistics.resolver.timeout", 200);
    res.setTimeout(0, timeout);
    Name name = ReverseMap.fromAddress(hostIp);
    int type = Type.PTR;
    int dclass = DClass.IN;
    Record rec = Record.newRecord(name, type, dclass);
    Message query = Message.newQuery(rec);
    Message response = res.send(query);
    Record[] answers = response.getSectionArray(Section.ANSWER);
    if (answers.length == 0) {
        return hostIp;
    } else {
        return answers[0].rdataToString();
    }
}
Also used : ExtendedResolver(org.xbill.DNS.ExtendedResolver) ExtendedResolver(org.xbill.DNS.ExtendedResolver) Resolver(org.xbill.DNS.Resolver) Message(org.xbill.DNS.Message) Record(org.xbill.DNS.Record) ConfigurationService(org.dspace.services.ConfigurationService) Name(org.xbill.DNS.Name)

Example 59 with Name

use of org.xbill.DNS.Name in project peppol-commons by phax.

the class PeppolURLProviderTest method testGetDNSNameOfParticipantWithDNSName.

@Test
public void testGetDNSNameOfParticipantWithDNSName() throws TextParseException {
    // The first part must always end with a DOT
    Name aName = Name.fromString("B-f5e78500450d37de5aabe6648ac3bb70.iso6523-actorid-upis.sml.peppolcentral.org.", Name.fromString("sml.peppolcentral.org."));
    assertEquals("B-f5e78500450d37de5aabe6648ac3bb70.iso6523-actorid-upis.sml.peppolcentral.org.", aName.toString());
    aName = Name.fromString("B-f5e78500450d37de5aabe6648ac3bb70.iso6523-actorid-upis.sml.peppolcentral.org.", Name.fromString("sml.peppolcentral.org"));
    assertEquals("B-f5e78500450d37de5aabe6648ac3bb70.iso6523-actorid-upis.sml.peppolcentral.org.", aName.toString());
}
Also used : Name(org.xbill.DNS.Name) Test(org.junit.Test)

Example 60 with Name

use of org.xbill.DNS.Name in project resteasy-extensions by resteasy.

the class EagleDNS method addAnswer.

private byte addAnswer(Message response, Name name, int type, int dclass, int iterations, int flags) {
    SetResponse sr;
    byte rcode = Rcode.NOERROR;
    if (iterations > 6) {
        return Rcode.NOERROR;
    }
    if (type == Type.SIG || type == Type.RRSIG) {
        type = Type.ANY;
        flags |= FLAG_SIGONLY;
    }
    Zone zone = findBestZone(name);
    if (zone != null) {
        sr = zone.findRecords(name, type);
        if (sr.isNXDOMAIN()) {
            response.getHeader().setRcode(Rcode.NXDOMAIN);
            if (zone != null) {
                addSOA(response, zone);
                if (iterations == 0) {
                    response.getHeader().setFlag(Flags.AA);
                }
            }
            rcode = Rcode.NXDOMAIN;
        } else if (sr.isNXRRSET()) {
            if (zone != null) {
                addSOA(response, zone);
                if (iterations == 0) {
                    response.getHeader().setFlag(Flags.AA);
                }
            }
        } else if (sr.isDelegation()) {
            RRset nsRecords = sr.getNS();
            addRRset(nsRecords.getName(), response, nsRecords, Section.AUTHORITY, flags);
        } else if (sr.isCNAME()) {
            CNAMERecord cname = sr.getCNAME();
            RRset rrset = new RRset(cname);
            addRRset(name, response, rrset, Section.ANSWER, flags);
            if (zone != null && iterations == 0) {
                response.getHeader().setFlag(Flags.AA);
            }
            rcode = addAnswer(response, cname.getTarget(), type, dclass, iterations + 1, flags);
        } else if (sr.isDNAME()) {
            DNAMERecord dname = sr.getDNAME();
            RRset rrset = new RRset(dname);
            addRRset(name, response, rrset, Section.ANSWER, flags);
            Name newname;
            try {
                newname = name.fromDNAME(dname);
            } catch (NameTooLongException e) {
                return Rcode.YXDOMAIN;
            }
            rrset = new RRset(new CNAMERecord(name, dclass, 0, newname));
            addRRset(name, response, rrset, Section.ANSWER, flags);
            if (zone != null && iterations == 0) {
                response.getHeader().setFlag(Flags.AA);
            }
            rcode = addAnswer(response, newname, type, dclass, iterations + 1, flags);
        } else if (sr.isSuccessful()) {
            List<RRset> rrsets = sr.answers();
            for (RRset rrset : rrsets) {
                addRRset(name, response, rrset, Section.ANSWER, flags);
            }
            if (zone != null) {
                addNS(response, zone, flags);
                if (iterations == 0) {
                    response.getHeader().setFlag(Flags.AA);
                }
            }
        }
    }
    return rcode;
}
Also used : SetResponse(org.xbill.DNS.SetResponse) CNAMERecord(org.xbill.DNS.CNAMERecord) NameTooLongException(org.xbill.DNS.NameTooLongException) DNAMERecord(org.xbill.DNS.DNAMERecord) Zone(org.xbill.DNS.Zone) RRset(org.xbill.DNS.RRset) List(java.util.List) ArrayList(java.util.ArrayList) Name(org.xbill.DNS.Name)

Aggregations

Name (org.xbill.DNS.Name)110 Record (org.xbill.DNS.Record)38 Message (org.xbill.DNS.Message)19 SRVRecord (org.xbill.DNS.SRVRecord)18 ArrayList (java.util.ArrayList)13 IOException (java.io.IOException)12 UnknownHostException (java.net.UnknownHostException)11 Lookup (org.xbill.DNS.Lookup)10 TextParseException (org.xbill.DNS.TextParseException)10 ARecord (org.xbill.DNS.ARecord)9 CNAMERecord (org.xbill.DNS.CNAMERecord)9 ExtendedResolver (org.xbill.DNS.ExtendedResolver)9 RRset (org.xbill.DNS.RRset)9 SimpleResolver (org.xbill.DNS.SimpleResolver)9 Zone (org.xbill.DNS.Zone)9 NSRecord (org.xbill.DNS.NSRecord)8 TSIG (org.xbill.DNS.TSIG)7 TXTRecord (org.xbill.DNS.TXTRecord)7 HashSet (java.util.HashSet)6 Iterator (java.util.Iterator)6