various modular fixes

This commit is contained in:
AngelPashov
2018-06-01 16:16:43 +03:00
parent f207254238
commit 8492d94054
23 changed files with 605 additions and 612 deletions

View File

@@ -1,66 +1,55 @@
'use strict';
const fs = require('fs');
const moment = require('moment');
const moment = require('moment');
const handlebars = require('handlebars');
const BN = require("bn.js");
const BN = require('bn.js');
const registerHelpers = () => {
handlebars.registerHelper('today', () => moment().format('DD.MM.YYYY'));
handlebars.registerHelper('now', () => moment().format('HH:mm:ss'));
handlebars.registerHelper('keyExponentBits', k => Buffer.byteLength(new BN(k.key.keyPair.e).toBuffer()) * 8);
handlebars.registerHelper('keyModulusBits', k => k.key.getKeySize());
// return Buffer.byteLength(new BN(k.key.keyPair.e).toBuffer()) * 8;
handlebars.registerHelper('keyExponent', k => k.e());
handlebars.registerHelper('keyModulus', k => k.n().toUpperCase().match(/.{1,2}/g).join(' '));
handlebars.registerHelper('sha256', (k) => {
const digest = Buffer.from(k.publicDigest(), 'base64').toString('HEX');
return digest.toUpperCase().match(/.{1,2}/g).join(' ');
});
};
module.exports = class BankLetter {
constructor(client, bankName) {
this.client = client;
this.bankName = bankName;
this.pathToTemplate = './app/ebics/ini.hbs';
};
constructor({
client,
bankName,
template,
}) {
this.client = client;
this.bankName = bankName;
this.template = template;
}
_registerHelpers() {
handlebars.registerHelper("today", () => {
return moment().format('DD.MM.YYYY');
});
handlebars.registerHelper("now", () => {
return moment().format('HH:mm:ss');
});
handlebars.registerHelper("keyExponentBits", (k) => {
return Buffer.byteLength(new BN(k.key.keyPair.e).toBuffer()) * 8;
});
handlebars.registerHelper("keyModulusBits", (k) => {
return k.key.getKeySize();
// return Buffer.byteLength(new BN(k.key.keyPair.e).toBuffer()) * 8;
});
handlebars.registerHelper("keyExponent", (k) => {
return k.e();
});
handlebars.registerHelper("keyModulus", (k) => {
return k.n().toUpperCase().match(/.{1,2}/g).join(' ');
});
handlebars.registerHelper("sha256", (k) => {
const digest = Buffer.from(k.publicDigest(), 'base64').toString('HEX');
return digest.toUpperCase().match(/.{1,2}/g).join(' ');
});
};
generate() {
this._registerHelpers();
registerHelpers();
const str = fs.readFileSync(this.pathToTemplate).toString();
const templ = handlebars.compile(str);
const templ = handlebars.compile(this.template);
const data = {
bankName : this.bankName,
userId : this.client.userId,
bankName: this.bankName,
userId: this.client.userId,
partnerId: this.client.partnerId,
A006 : this.client.a(),
X002 : this.client.x(),
E002 : this.client.e(),
A006: this.client.a(),
X002: this.client.x(),
E002: this.client.e(),
};
return templ(data);
}
}
};