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