updates for nsec3-08 (wire format changes)
git-svn-id: https://svn.verisignlabs.com/jdnssec/tools/trunk@108 4cbd57fe-54e5-0310-bd9a-f30fe5ea5e6e
This commit is contained in:
parent
661f31cdba
commit
1b778f279d
Binary file not shown.
@ -36,8 +36,8 @@ import org.xbill.DNS.utils.base32;
|
|||||||
public class ProtoNSEC3
|
public class ProtoNSEC3
|
||||||
{
|
{
|
||||||
private Name originalOwner;
|
private Name originalOwner;
|
||||||
private boolean optInFlag;
|
|
||||||
private byte hashAlg;
|
private byte hashAlg;
|
||||||
|
private byte flags;
|
||||||
private int iterations;
|
private int iterations;
|
||||||
private byte[] salt;
|
private byte[] salt;
|
||||||
private byte[] next;
|
private byte[] next;
|
||||||
@ -50,21 +50,17 @@ public class ProtoNSEC3
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Creates an NSEC3 Record from the given data.
|
* Creates an NSEC3 Record from the given data.
|
||||||
*
|
|
||||||
* @param originalOwner TODO
|
|
||||||
* @param next The following name in an ordered list of the zone
|
|
||||||
* @param types An array containing the types present.
|
|
||||||
*/
|
*/
|
||||||
public ProtoNSEC3(byte[] owner, Name originalOwner, Name zone, int dclass,
|
public ProtoNSEC3(byte[] owner, Name originalOwner, Name zone, int dclass,
|
||||||
long ttl, boolean optInFlag, byte hashAlg, int iterations, byte[] salt,
|
long ttl, byte hashAlg, byte flags, int iterations, byte[] salt,
|
||||||
byte[] next, TypeMap typemap)
|
byte[] next, TypeMap typemap)
|
||||||
{
|
{
|
||||||
this.zone = zone;
|
this.zone = zone;
|
||||||
this.owner = owner;
|
this.owner = owner;
|
||||||
this.dclass = dclass;
|
this.dclass = dclass;
|
||||||
this.ttl = ttl;
|
this.ttl = ttl;
|
||||||
this.optInFlag = optInFlag;
|
|
||||||
this.hashAlg = hashAlg;
|
this.hashAlg = hashAlg;
|
||||||
|
this.flags = flags;
|
||||||
this.iterations = iterations;
|
this.iterations = iterations;
|
||||||
this.salt = salt;
|
this.salt = salt;
|
||||||
this.next = next;
|
this.next = next;
|
||||||
@ -73,10 +69,10 @@ public class ProtoNSEC3
|
|||||||
}
|
}
|
||||||
|
|
||||||
public ProtoNSEC3(byte[] owner, Name originalOwner, Name zone, int dclass,
|
public ProtoNSEC3(byte[] owner, Name originalOwner, Name zone, int dclass,
|
||||||
long ttl, boolean optInFlag, byte hashAlg, int iterations, byte[] salt,
|
long ttl, byte hashAlg, byte flags, int iterations, byte[] salt,
|
||||||
byte[] next, int[] types)
|
byte[] next, int[] types)
|
||||||
{
|
{
|
||||||
this(owner, originalOwner, zone, dclass, ttl, optInFlag, hashAlg,
|
this(owner, originalOwner, zone, dclass, ttl, hashAlg, flags,
|
||||||
iterations, salt, next, TypeMap.fromTypes(types));
|
iterations, salt, next, TypeMap.fromTypes(types));
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -113,14 +109,20 @@ public class ProtoNSEC3
|
|||||||
this.next = next;
|
this.next = next;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public byte getFlags()
|
||||||
|
{
|
||||||
|
return flags;
|
||||||
|
}
|
||||||
|
|
||||||
public boolean getOptInFlag()
|
public boolean getOptInFlag()
|
||||||
{
|
{
|
||||||
return optInFlag;
|
return (flags & NSEC3Record.OPT_OUT_FLAG) != 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setOptInFlag(boolean optInFlag)
|
public void setOptInFlag(boolean optInFlag)
|
||||||
{
|
{
|
||||||
this.optInFlag = optInFlag;
|
if (optInFlag) this.flags |= NSEC3Record.OPT_OUT_FLAG;
|
||||||
|
else this.flags &= ~NSEC3Record.OPT_OUT_FLAG;
|
||||||
}
|
}
|
||||||
|
|
||||||
public long getTTL()
|
public long getTTL()
|
||||||
@ -183,7 +185,7 @@ public class ProtoNSEC3
|
|||||||
String comment = (originalOwner == null)
|
String comment = (originalOwner == null)
|
||||||
? "(unknown original ownername)"
|
? "(unknown original ownername)"
|
||||||
: originalOwner.toString();
|
: originalOwner.toString();
|
||||||
return new NSEC3Record(getName(), dclass, ttl, optInFlag, hashAlg,
|
return new NSEC3Record(getName(), dclass, ttl, hashAlg, flags,
|
||||||
iterations, salt, next, getTypes(), comment);
|
iterations, salt, next, getTypes(), comment);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -218,7 +220,7 @@ public class ProtoNSEC3
|
|||||||
sb.append(' ');
|
sb.append(' ');
|
||||||
sb.append(DClass.string(dclass));
|
sb.append(DClass.string(dclass));
|
||||||
sb.append(" NSEC3 ");
|
sb.append(" NSEC3 ");
|
||||||
sb.append(optInFlag ? '1' : '0');
|
sb.append(flags);
|
||||||
sb.append(' ');
|
sb.append(' ');
|
||||||
sb.append(hashAlg);
|
sb.append(hashAlg);
|
||||||
sb.append(' ');
|
sb.append(' ');
|
||||||
|
@ -731,7 +731,7 @@ public class SignUtils
|
|||||||
records.addAll(nsec3s);
|
records.addAll(nsec3s);
|
||||||
|
|
||||||
NSEC3PARAMRecord nsec3param = new NSEC3PARAMRecord(zonename, DClass.IN,
|
NSEC3PARAMRecord nsec3param = new NSEC3PARAMRecord(zonename, DClass.IN,
|
||||||
nsec3param_ttl, NSEC3Record.SHA1_DIGEST_ID, iterations, salt);
|
nsec3param_ttl, NSEC3Record.SHA1_DIGEST_ID, (byte) 0, iterations, salt);
|
||||||
records.add(nsec3param);
|
records.add(nsec3param);
|
||||||
|
|
||||||
}
|
}
|
||||||
@ -836,7 +836,7 @@ public class SignUtils
|
|||||||
records.addAll(nsec3s);
|
records.addAll(nsec3s);
|
||||||
|
|
||||||
NSEC3PARAMRecord nsec3param = new NSEC3PARAMRecord(zonename, DClass.IN,
|
NSEC3PARAMRecord nsec3param = new NSEC3PARAMRecord(zonename, DClass.IN,
|
||||||
nsec3param_ttl, NSEC3Record.SHA1_DIGEST_ID, iterations, salt);
|
nsec3param_ttl, NSEC3Record.SHA1_DIGEST_ID, (byte) 0, iterations, salt);
|
||||||
records.add(nsec3param);
|
records.add(nsec3param);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -886,9 +886,10 @@ public class SignUtils
|
|||||||
NSEC3Record.SHA1_DIGEST_ID,
|
NSEC3Record.SHA1_DIGEST_ID,
|
||||||
iterations,
|
iterations,
|
||||||
salt);
|
salt);
|
||||||
|
byte flags = (byte) (optIn ? 0x01 : 0x00);
|
||||||
|
|
||||||
ProtoNSEC3 r = new ProtoNSEC3(hash, name, zonename, DClass.IN, ttl,
|
ProtoNSEC3 r = new ProtoNSEC3(hash, name, zonename, DClass.IN, ttl,
|
||||||
optIn, NSEC3Record.SHA1_DIGEST_ID, iterations, salt, null, types);
|
flags, NSEC3Record.SHA1_DIGEST_ID, iterations, salt, null, types);
|
||||||
|
|
||||||
log.finer("Generated: " + r);
|
log.finer("Generated: " + r);
|
||||||
return r;
|
return r;
|
||||||
|
Loading…
Reference in New Issue
Block a user