Example #1
0
        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);
        }
Example #2
0
        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);
        }