mirror of
https://codeberg.org/streams/streams.git
synced 2024-09-20 01:15:13 +00:00
36 lines
1.4 KiB
JavaScript
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')
|
|
};
|