Skip to content

Releases: Badcow/DNS

v4.3.0

06 Aug 13:52
Compare
Choose a tag to compare

What's Changed

  • Fix TxtTest.php for double escape test by @srsbiz in #114
  • removed strict hostname validator for Question::setName by @tomschlick in #118

New Contributors

Full Changelog: v4.2.1...v4.3.0

Version 4.2.1

12 Nov 01:09
75a7f0e
Compare
Choose a tag to compare
  • Pull #113 Fix to prevent double stripping of backslashes. (Thank you, SloEddy)

Version 4.2.0

27 Apr 10:54
ec28369
Compare
Choose a tag to compare

Version 4.1.1

21 Jan 22:55
aeb1aa5
Compare
Choose a tag to compare

Version 4.1

13 Jan 19:50
72b6707
Compare
Choose a tag to compare
  • Issue #88 - TXT Rdata now supports unquoted contiguous strings. (Thank you, Lorenz Bausch - for bringing this to issue to light).
  • Issue #89 - Fixes issue where TXT record with number as value throws exception (Thank you, Lorenz Bausch for bringing this to issue to light).
  • PR #90 - Do not add double dot when $ORIGIN is the root domain ("."). (Thank you, Cedric Dubois)
  • Issue #91 - Use christian-riesen/base32 instead of ademarre/binary-to-text-php.
  • Explicit support for PHP 8.
  • Throw exception if unpack() returns false. This fixes a litany of new PHPStan errors that are being seen in development.

Version 4

01 Dec 20:33
Compare
Choose a tag to compare
  • Badcow\DNS\Rdata\RdataInterface::fromWire is no longer static and does not return an instance of the class. You now
    must instantiate the object first, and then call fromWire method. All parameters are the same.
  • Badcow\DNS\Rdata\RdataInterface::fromText is no longer static and does not return an instance of the class. You now
    must instantiate the object first, and then call fromText method. All parameters are the same.
  • Deleted Bacow\DNS\Rdata\Algorithms, use Bacow\DNS\Algorithms instead.
  • PR #73 Resolves issue where records with integers are not parsed correctly.
    (Thank you, Hossein Taleghani)
  • Issue #63 - Consistent handling ok keys, signatures and digests.
    • KEY::setPublicKey($key) now expects the raw binary form of the public key. Similarly KEY::getPublicKey() returns
      a raw binary public key. base64_decode() and base64_encode() should be used on the setter and getter, respectively,
      if you want to handle Base64 encoded string. These changes apply to all child classes as well (DNSKEY and CDNSKEY).
    • DS::setDigest($digest) now expects the raw binary form of the digest. Similarly DS::getDigest returns a raw binary
      digest. hex2bin() and bin2hex() should be used on the setter and getter, respectively, if you want to handle
      hexadecimal encoded strings. These changes apply to all child classes as well (CDS, DLV and TA).
    • CERT::setCertificate($cert) now expects the raw binary form of the certificate. Similarly CERT::getCertificate()
      returns a raw binary certificate. base64_decode() and base64_encode() should be used on the setter and getter, respectively,
      if you want to handle Base64 encoded strings.
    • DHCID::setDigest($digest) now expects the raw binary form of the digest. Similarly DHCID::getDigest returns a raw
      binary digest. hex2bin() and bin2hex() should be used on the setter and getter, respectively, if you want to handle
      hexadecimal encoded strings.
    • IPSECKEY::setPublicKey($key) now expects the raw binary form of the public key. Similarly IPSECKEY::getPublicKey()
      returns a raw binary public key. base64_decode() and base64_encode() should be used on the setter and getter, respectively,
      if you want to handle Base64 encoded strings.
    • NSEC3::setNextHashedOwner($key) now expects the raw binary form of the hash. Similarly NSEC3::getNextHashedOwner()
      returns a raw binary hash. NSEC3::base32decode() and NSEC3::base32encode() should be used on the setter and getter,
      respectively, if you want to handle Base32 encoded strings.
    • RRSIG::setSignature($signature) now expects the raw binary form of the signature. Similarly RRSIG::getSignature() returns
      a raw binary signature. base64_decode() and base64_encode() should be used on the setter and getter, respectively,
      if you want to handle Base64 encoded string. These changes apply to the child class SIG as well.
    • SSHFP::setFingerprint($fingerprint) now expects the raw binary form of the fingerprint. Similarly SSHFP::getFingerprint
      returns a raw binary fingerprint. hex2bin() and bin2hex() should be used on the setter and getter, respectively,
      if you want to handle hexadecimal encoded strings.
  • New method DS::calculateDigest(string $owner, DNSKEY $dnskey) will calculate and set the digest using the DNSKEY rdata object.
  • Issue #75 - Resolves issue where RRSIG records are not process correctly.
    (Thank you, emkookmer)
  • NSEC3 has new parameter $nextOwnerName with respective setter and getters NSEC3::setNextOwnerName($nextOwnerName)
    and NSEC3::getNextOwnerName(). This new parameter will not be rendered in the rdata text or wire formats, but can be
    used to calculate the nextOwnerHashedName.
  • NSEC3 has new method NSEC3::calculateNextOwnerHash() to calculate and set NSEC3::nextOwnerHash. Requires
    NSEC3::salt, NSEC3::nextOwnerName, and NSEC3::iterations to be set before calling method.
  • Factory::NSEC3() has been changed to take only the following parameters:
    • [bool]$unsignedDelegationsCovered
    • [int]$iterations
    • [string]$salt
    • [string]$nextOwnerName
    • [array] $types
  • Issue #70 - Multiple $ORIGIN declarations are now supported.
    (Thank you, MikeAT)
  • Issue #80 - Parser now supports the $INCLUDE directive to import and parse
    child or subdomain zone files.
  • PR #82 - Fix character escaping in TXT records. (Thank you, @fbett)
  • Issue #84 - TXT::toText() now splits string into 255-byte chunks. (Thank you, @fbett)
  • Issue #85 - Badow\DNS\AlignedBuilder now has finer controls. You can now
    define the order of rendering Resource Records and add or change Rdata output formatters (see Docs/AlignedZoneBuilder).
  • Badow\DNS\AlignedBuilder cannot be called statically anymore. It must be instantiated.

Full support for DNS message

20 Mar 22:12
Compare
Choose a tag to compare
  • New classes to support full stack DNS message:
    • Badcow\DNS\Message
    • Badcow\DNS\Opcode
    • Badcow\DNS\Question
  • New method: Badcow\DNS\Parser\StringIterator::getRemainingAsString().
  • Additional parameters added to Badcow\DNS\Rdata\RdataInterface::fromWire(): RdataInterface::fromWire(string $rdata, int &$offset = 0, ?int $rdLength = null).
  • Badcow\DNS\Rdata\RdataTrait::decodeName() now can interpret RFC1035 compressed names in a DNS message context.
  • Deprecate Bacow\DNS\Rdata\Algorithms, use Bacow\DNS\Algorithms instead.

v3.4.0

27 Feb 19:58
Compare
Choose a tag to compare
  • If the default TTL control entry $TTL is set, the Parser will set the TTL on all resource records to that TTL if one is not explicitly set.
    If no $TTL is set, then the resource record will adopt the last defined $TTL.
  • Fixed bug where orphan comments were not being ignored.

v3.3.0

21 Feb 21:16
Compare
Choose a tag to compare

Parser no longer ignores $ORIGIN control entry.

v3.2.1

23 Jan 23:06
Compare
Choose a tag to compare
Use actual binary-to-text library repository.