streams/library/sodium-plus/index.js
2024-03-14 14:49:12 +11:00

36 lines
1.4 KiB
JavaScript

module.exports = {
/**
* This is only meant to be used for advanced users.
*
* A backend object can be passed to the SodiumPlus constructor.
*
* @param {string} type
* @return {Backend}
* @throws {SodiumError}
* @throws {Error}
*/
getBackendObject: (type = '') => {
if (type === 'SodiumNative') {
// This one may error out. You should catch it in your code.
// We won't here. Use the `await SodiumPlus.auto()` API instead!
return require('./lib/backend/sodiumnative');
} else if (type === 'LibsodiumWrappers') {
return require('./lib/backend/libsodium-wrappers');
} else if (type.length === 0) {
return require('./lib/backend');
}
// Default: Throw a SodiumError
let SodiumError = require('./lib/sodium-error');
throw new SodiumError(`Unrecognized backend type: ${type}`);
},
CryptographyKey: require('./lib/cryptography-key'),
Ed25519PublicKey: require('./lib/keytypes/ed25519pk'),
Ed25519SecretKey: require('./lib/keytypes/ed25519sk'),
SodiumError: require('./lib/sodium-error'),
SodiumPlus: require('./lib/sodiumplus'),
SodiumPolyfill: require('./lib/polyfill'),
SodiumUtil: require('./lib/util'),
X25519PublicKey: require('./lib/keytypes/x25519pk'),
X25519SecretKey: require('./lib/keytypes/x25519sk')
};