implemented first of the fallback crypto functions
This commit is contained in:
parent
6ec723ec1f
commit
e8e9b961a4
|
@ -0,0 +1 @@
|
||||||
|
node_modules/
|
|
@ -0,0 +1,32 @@
|
||||||
|
;(function () {
|
||||||
|
'use strict';
|
||||||
|
|
||||||
|
var createHash = require('create-hash');
|
||||||
|
var pbkdf2 = require('pbkdf2');
|
||||||
|
var aes = require('browserify-aes');
|
||||||
|
|
||||||
|
exports.sha256 = function (buf) {
|
||||||
|
var hash = createHash('sha256');
|
||||||
|
hash.update(buf);
|
||||||
|
hash.end();
|
||||||
|
return Promise.resolve(hash.read());
|
||||||
|
};
|
||||||
|
|
||||||
|
exports.encrypt = function (data, password, salt, iv) {
|
||||||
|
// Derived AES key is 128 bit, and the function takes a size in bytes.
|
||||||
|
var aesKey = pbkdf2.pbkdf2Sync(password, Buffer(salt), 8192, 16, 'sha256');
|
||||||
|
var cipher = aes.createCipheriv('aes-128-gcm', aesKey, Buffer(iv));
|
||||||
|
var result = Buffer.concat([cipher.update(Buffer(data)), cipher.final(), cipher.getAuthTag()]);
|
||||||
|
return Promise.resolve(result);
|
||||||
|
};
|
||||||
|
|
||||||
|
exports.decrypt = function (data, password, salt, iv) {
|
||||||
|
var aesKey = pbkdf2.pbkdf2Sync(password, Buffer(salt), 8192, 16, 'sha256');
|
||||||
|
var decipher = aes.createDecipheriv('aes-128-gcm', aesKey, Buffer(iv));
|
||||||
|
|
||||||
|
decipher.setAuthTag(Buffer(data.slice(-16)));
|
||||||
|
var result = Buffer.concat([decipher.update(Buffer(data.slice(0, -16))), decipher.final()]);
|
||||||
|
return Promise.resolve(result);
|
||||||
|
};
|
||||||
|
|
||||||
|
}());
|
|
@ -0,0 +1,21 @@
|
||||||
|
;(function () {
|
||||||
|
'use strict';
|
||||||
|
|
||||||
|
var gulp = require('gulp');
|
||||||
|
var browserify = require('browserify');
|
||||||
|
var source = require('vinyl-source-stream');
|
||||||
|
var streamify = require('gulp-streamify');
|
||||||
|
var uglify = require('gulp-uglify');
|
||||||
|
var rename = require('gulp-rename');
|
||||||
|
|
||||||
|
gulp.task('default', function () {
|
||||||
|
return browserify('./browserify/crypto-index.js', {standalone: 'OAUTH3_crypto'}).bundle()
|
||||||
|
.pipe(source('browserify/crypto-index.js'))
|
||||||
|
.pipe(rename('oauth3.crypto.js'))
|
||||||
|
.pipe(gulp.dest('./'))
|
||||||
|
.pipe(streamify(uglify()))
|
||||||
|
.pipe(rename('oauth3.crypto.min.js'))
|
||||||
|
.pipe(gulp.dest('./'))
|
||||||
|
;
|
||||||
|
});
|
||||||
|
}());
|
|
@ -0,0 +1,23 @@
|
||||||
|
{
|
||||||
|
"name": "oauth3",
|
||||||
|
"respository": {
|
||||||
|
"type": "git",
|
||||||
|
"url": "git+ssh://git@git.daplie.com:Daplie/oauth3.js.git"
|
||||||
|
},
|
||||||
|
"scripts": {
|
||||||
|
"install": "./node_modules/.bin/gulp"
|
||||||
|
},
|
||||||
|
"devDependencies": {
|
||||||
|
"atob": "^2.0.3",
|
||||||
|
"browserify": "^14.1.0",
|
||||||
|
"browserify-aes": "^1.0.6",
|
||||||
|
"btoa": "^1.1.2",
|
||||||
|
"gulp": "^3.9.1",
|
||||||
|
"gulp-cli": "^1.2.2",
|
||||||
|
"gulp-rename": "^1.2.2",
|
||||||
|
"gulp-streamify": "^1.0.2",
|
||||||
|
"gulp-uglify": "^2.1.0",
|
||||||
|
"pbkdf2": "^3.0.9",
|
||||||
|
"vinyl-source-stream": "^1.1.0"
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue