123456789101112131415161718192021222324252627282930313233343536373839 |
- /**
- * Created by bmf on 11/2/13.
- */
- /* jslint node: true */
- 'use strict';
- var util = require('util');
- var binding = require('../../build/Release/sodium');
- var KeyPair = require('./keypair');
- var Box = function BoxKey(publicKey, secretKey, encoding) {
- var self = this;
- KeyPair.call(this);
- self.init({
- publicKeySize : binding.crypto_box_PUBLICKEYBYTES,
- secretKeySize : binding.crypto_box_SECRETKEYBYTES,
- publicKey : publicKey,
- secretKey : secretKey,
- type: 'BoxKey'
- });
- self.generate = function() {
- var keys = binding.crypto_box_keypair();
- self.secretKey.set(keys.secretKey);
- self.publicKey.set(keys.publicKey);
- };
-
- if( !publicKey || !secretKey ||
- !self.isValid({ 'publicKey': publicKey, 'secretKey': secretKey }) ) {
- // Generate the keys
- self.generate();
- }
- };
- util.inherits(Box, KeyPair);
- module.exports = Box;
|