internal RrSigRecord(List <DnsRecordBase> records, DnsKeyRecord key, DateTime inception, DateTime expiration) : base(records[0].Name, RecordType.RrSig, records[0].RecordClass, records[0].TimeToLive) { TypeCovered = records[0].RecordType; Algorithm = key.Algorithm; Labels = (byte)(records[0].Name.Labels[0] == DomainName.Asterisk.Labels[0] ? records[0].Name.LabelCount - 1 : records[0].Name.LabelCount); OriginalTimeToLive = records[0].TimeToLive; SignatureExpiration = expiration; SignatureInception = inception; KeyTag = key.CalculateKeyTag(); SignersName = key.Name; Signature = new byte[] { }; byte[] signBuffer; int signBufferLength; EncodeSigningBuffer(records, out signBuffer, out signBufferLength); Signature = key.Sign(signBuffer, signBufferLength); }
public static RrSigRecord SignRecord(List <DnsRecordBase> records, DnsKeyRecord key, DateTime inception, DateTime expiration) { RrSigRecord record = new RrSigRecord(records, key, inception, expiration); record.TypeCovered = records[0].RecordType; record.Algorithm = key.Algorithm; record.Labels = (byte)(records[0].Name.Labels[0] == DomainName.Asterisk.Labels[0] ? records[0].Name.LabelCount - 1 : records[0].Name.LabelCount); record.OriginalTimeToLive = records[0].TimeToLive; record.SignatureExpiration = expiration; record.SignatureInception = inception; record.KeyTag = key.CalculateKeyTag(); record.SignersName = key.Name; record.Signature = new byte[] { }; // byte[] signBuffer; // int signBufferLength; record.EncodeSigningBuffer(records, out byte[] signBuffer, out int signBufferLength); record.Signature = key.Sign(signBuffer, signBufferLength); return(record); }