summary refs log tree commit diff
path: root/Crypto/src/crypto/parameters/KeyParameter.cs
diff options
context:
space:
mode:
Diffstat (limited to 'Crypto/src/crypto/parameters/KeyParameter.cs')
-rw-r--r--Crypto/src/crypto/parameters/KeyParameter.cs43
1 files changed, 43 insertions, 0 deletions
diff --git a/Crypto/src/crypto/parameters/KeyParameter.cs b/Crypto/src/crypto/parameters/KeyParameter.cs
new file mode 100644

index 000000000..33dff96d7 --- /dev/null +++ b/Crypto/src/crypto/parameters/KeyParameter.cs
@@ -0,0 +1,43 @@ +using System; + +using Org.BouncyCastle.Crypto; + +namespace Org.BouncyCastle.Crypto.Parameters +{ + public class KeyParameter + : ICipherParameters + { + private readonly byte[] key; + + public KeyParameter( + byte[] key) + { + if (key == null) + throw new ArgumentNullException("key"); + + this.key = (byte[]) key.Clone(); + } + + public KeyParameter( + byte[] key, + int keyOff, + int keyLen) + { + if (key == null) + throw new ArgumentNullException("key"); + if (keyOff < 0 || keyOff > key.Length) + throw new ArgumentOutOfRangeException("keyOff"); + if (keyLen < 0 || (keyOff + keyLen) > key.Length) + throw new ArgumentOutOfRangeException("keyLen"); + + this.key = new byte[keyLen]; + Array.Copy(key, keyOff, this.key, 0, keyLen); + } + + public byte[] GetKey() + { + return (byte[]) key.Clone(); + } + } + +}