internal static PublicKey Read(ReadOnlySequence <byte> data, IReadOnlyList <Name> allowedFormats) { var reader = new SequenceReader(data); var key = reader.ReadPublicKey(allowedFormats); reader.ReadEnd(); return(key); }
internal override bool VerifySignature(Span <byte> data, ReadOnlySequence <byte> signature) { var reader = new SequenceReader(signature); reader.ReadName(Format); using var rsa = RSA.Create(new RSAParameters { Exponent = _e, Modulus = _n }); int signatureLength = rsa.KeySize / 8; ReadOnlySequence <byte> signatureData = reader.ReadStringAsBytes(maxLength: signatureLength); reader.ReadEnd(); return(rsa.VerifyData(data, signatureData.ToArray(), HashAlgorithmName.SHA1, RSASignaturePadding.Pkcs1)); }