diff options
Diffstat (limited to 'crypto/src/crypto/signers/IDsaEncoding.cs')
-rw-r--r-- | crypto/src/crypto/signers/IDsaEncoding.cs | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/crypto/src/crypto/signers/IDsaEncoding.cs b/crypto/src/crypto/signers/IDsaEncoding.cs new file mode 100644 index 000000000..cccc4f937 --- /dev/null +++ b/crypto/src/crypto/signers/IDsaEncoding.cs @@ -0,0 +1,25 @@ +using System; + +using Org.BouncyCastle.Math; + +namespace Org.BouncyCastle.Crypto.Signers +{ + /// <summary> + /// An interface for different encoding formats for DSA signatures. + /// </summary> + public interface IDsaEncoding + { + /// <summary>Decode the (r, s) pair of a DSA signature.</summary> + /// <param name="n">The order of the group that r, s belong to.</param> + /// <param name="encoding">An encoding of the (r, s) pair of a DSA signature.</param> + /// <returns>The (r, s) of a DSA signature, stored in an array of exactly two elements, r followed by s.</returns> + BigInteger[] Decode(BigInteger n, byte[] encoding); + + /// <summary>Encode the (r, s) pair of a DSA signature.</summary> + /// <param name="n">The order of the group that r, s belong to.</param> + /// <param name="r">The r value of a DSA signature.</param> + /// <param name="s">The s value of a DSA signature.</param> + /// <returns>An encoding of the DSA signature given by the provided (r, s) pair.</returns> + byte[] Encode(BigInteger n, BigInteger r, BigInteger s); + } +} |