diff options
Diffstat (limited to 'library/sodium-plus/lib/keytypes/x25519sk.js')
-rw-r--r-- | library/sodium-plus/lib/keytypes/x25519sk.js | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/library/sodium-plus/lib/keytypes/x25519sk.js b/library/sodium-plus/lib/keytypes/x25519sk.js new file mode 100644 index 000000000..8b8016f83 --- /dev/null +++ b/library/sodium-plus/lib/keytypes/x25519sk.js @@ -0,0 +1,29 @@ +const CryptographyKey = require('../cryptography-key'); + +class X25519SecretKey extends CryptographyKey { + constructor(buf) { + if (buf.length !== 32) { + throw new Error('X25519 secret keys must be 32 bytes long'); + } + super(buf); + this.keyType = 'x25519'; + this.publicKey = false; + } + + /** + * @return {X25519SecretKey} + */ + static from() { + return new X25519SecretKey(Buffer.from(...arguments)); + } + + isX25519Key() { + return true; + } + + isPublicKey() { + return false; + } +} + +module.exports = X25519SecretKey; |