summary refs log tree commit diff
path: root/crypto/src/crypto/parameters/X25519PublicKeyParameters.cs
diff options
context:
space:
mode:
Diffstat (limited to 'crypto/src/crypto/parameters/X25519PublicKeyParameters.cs')
-rw-r--r--crypto/src/crypto/parameters/X25519PublicKeyParameters.cs13
1 files changed, 13 insertions, 0 deletions
diff --git a/crypto/src/crypto/parameters/X25519PublicKeyParameters.cs b/crypto/src/crypto/parameters/X25519PublicKeyParameters.cs
index 7df5f624d..c28e4de16 100644
--- a/crypto/src/crypto/parameters/X25519PublicKeyParameters.cs
+++ b/crypto/src/crypto/parameters/X25519PublicKeyParameters.cs
@@ -14,6 +14,11 @@ namespace Org.BouncyCastle.Crypto.Parameters
 
         private readonly byte[] data = new byte[KeySize];
 
+        public X25519PublicKeyParameters(byte[] buf)
+            : this(Validate(buf), 0)
+        {
+        }
+
         public X25519PublicKeyParameters(byte[] buf, int off)
             : base(false)
         {
@@ -36,5 +41,13 @@ namespace Org.BouncyCastle.Crypto.Parameters
         {
             return Arrays.Clone(data);
         }
+
+        private static byte[] Validate(byte[] buf)
+        {
+            if (buf.Length != KeySize)
+                throw new ArgumentException("must have length " + KeySize, "buf");
+
+            return buf;
+        }
     }
 }