Skip to content

Commit

Permalink
merge
Browse files Browse the repository at this point in the history
  • Loading branch information
nanov committed Mar 30, 2021
2 parents 5c8139e + cecaa78 commit 2d580c0
Show file tree
Hide file tree
Showing 7 changed files with 199 additions and 11 deletions.
7 changes: 3 additions & 4 deletions examples/bankLetter.js
Original file line number Diff line number Diff line change
Expand Up @@ -9,10 +9,9 @@ const os = require('os');

const config = require('./loadConfig')();
const client = require('./getClient')(config);
const bankName = config.bankName;
const languageCode = config.languageCode;
const template = fs.readFileSync('../templates/ini_'+config.languageCode+'.hbs', { encoding: 'utf8 '});
const bankLetterFile = path.join(os.homedir(), 'bankLetter_'+languageCode+'.html');
const bankName = client.bankName;
const template = fs.readFileSync("../templates/ini_"+client.languageCode+".hbs", { encoding: 'utf8'});
const bankLetterFile = path.join("./", "bankLetter_"+client.bankShortName+"_"+client.languageCode+".html");

const letter = new ebics.BankLetter({ client, bankName, template });

Expand Down
6 changes: 4 additions & 2 deletions examples/config/config.json
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,8 @@
"hostId": "MyHostIdTest",
"passphrase": "MyPasswordTest",
"keyStoragePath": "./keys-test",
"bankName":"Test Bank",
"languageCode":"en"
"bankName":"Test Bank Full Name",
"bankShortName":"TESTBANKSHORT",
"languageCode":"en",
"storageLocation":"\\\\myserver\\Share\\Folder\\BankName\\Test\\"
}
6 changes: 4 additions & 2 deletions examples/config/config.production.testbank.json
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,8 @@
"hostId": "MyHostIdProduction",
"passphrase": "MyPasswordProduction",
"keyStoragePath": "./keys-prod",
"bankName":"Production Bank",
"languageCode":"en"
"bankName":"Production Bank Full Name",
"bankShortName":"PRODBANKSHORT",
"languageCode":"en",
"storageLocation":"\\\\myserver\\Share\\Folder\\BankName\\Production\\"
}
6 changes: 4 additions & 2 deletions examples/config/config.production.testbank.testentity.json
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,8 @@
"hostId": "MyHostIdProduction",
"passphrase": "MyPasswordProduction",
"keyStoragePath": "./keys-prod",
"bankName":"Production Bank",
"languageCode":"en"
"bankName":"Production Bank Full Name",
"bankShortName":"PRODBANKSHORT",
"languageCode":"en",
"storageLocation":"\\\\myserver\\Share\\Folder\\BankName\\Production\\"
}
14 changes: 13 additions & 1 deletion lib/Client.js
Original file line number Diff line number Diff line change
Expand Up @@ -46,6 +46,10 @@ const stringifyKeys = (keys) => {
* @property {string} passphrase - passphrase for keys encryption
* @property {KeyStorage} keyStorage - keyStorage implementation
* @property {object} [tracesStorage] - traces (logs) storage implementation
* @property {string} bankName - Full name of the bank to be used in the bank INI letters.
* @property {string} bankShortName - Short name of the bank to be used in folders, filenames etc.
* @property {string} languageCode - Language code to be used in the bank INI letters ("de", "en" and "fr" are currently supported).
* @property {string} storageLocation - Location where to store the files that are downloaded. This can be a network share for example.
*/


Expand All @@ -62,6 +66,10 @@ module.exports = class Client {
passphrase,
keyStorage,
tracesStorage,
bankName,
bankShortName,
languageCode,
storageLocation,
}) {
if (!url)
throw new Error('EBICS URL is required');
Expand All @@ -83,7 +91,11 @@ module.exports = class Client {
this.hostId = hostId;
this.keyStorage = keyStorage;
this.keyEncryptor = defaultKeyEncryptor({ passphrase });
this.tracesStorage = tracesStorage || null;
this.tracesStorage = tracesStorage || null;
this.bankName = bankName || "Dummy Bank Full Name",
this.bankShortName = bankShortName || "BANKSHORTCODE",
this.languageCode = languageCode || "en",
this.storageLocation = storageLocation || null,
}

async send(order) {
Expand Down
7 changes: 7 additions & 0 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -63,10 +63,17 @@
"js2xmlparser": "^4.0.1",
"node-forge": "^0.10.0",
"request": "^2.88.2",
<<<<<<< HEAD
"uuid": "^8.3.2",
"xml-crypto": "^2.1.1",
"xmldom": "^0.5.0",
"xpath": "0.0.32"
=======
"uuid": "^8.0.0",
"xml-crypto": "^2.0.0",
"xmldom": "^0.5.0",
"xpath": "0.0.27"
>>>>>>> cecaa782c93ee847c48b6580ee6c82b5a495f240
},
"devDependencies": {
"auto-changelog": "^1.16.2",
Expand Down
164 changes: 164 additions & 0 deletions templates/ini_fr.hbs
Original file line number Diff line number Diff line change
@@ -0,0 +1,164 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">

<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<meta charset="UTF-8" />
<title>EBICS ini</title>
</head>

<body>
<div>
<h2>Lettre d'initialisation pour clés électroniques bancaires (INI)</h2>
<table>
<tr>
<td>Date</td>
<td>{{ today }}</td>
</tr>
<tr>
<td>Heure</td>
<td>{{ now }}</td>
</tr>
<tr>
<td>Banque</td>
<td>{{ bankName }}</td>
</tr>
<tr>
<td>ID Utilisateur</td>
<td>{{ userId }}</td>
</tr>
<tr>
<td>ID Partenaire</td>
<td>{{ partnerId }}</td>
</tr>
</table>
<p>Clé publique (Public Key) pour la signature électronique (A006)</p>
<p>Exposant ({{ keyExponentBits A006 }} Bit):</p>
<p>
<code>{{ keyExponent A006 }}</code>
</p>
<p>Modulo ({{ keyModulusBits A006 }} Bit):</p>
<p>
<code>{{ keyModulus A006 }}</code>
</p>
<p>Hash (SHA-256):</p>
<p>
<code>{{ sha256 A006 }}</code>
</p>
<p>Je confirme par la présente la clé publique ci-dessus pour ma signature électronique.</p>
<br/>
<br/>
<br/>
<br/>
<table>
<tr>
<td>_________________________</td>
<td>_________________________</td>
<td>_________________________</td>
</tr>
<tr>
<td>Lieu/Date</td>
<td>Nom/Entreprise</td>
<td>Signature</td>
</tr>
</table>
</div>
<div style="page-break-after:always"></div>
<h2>Lettre d'initialisation pour clés électroniques bancaires (HIA) - Page 1/2</h2>
<table>
<tr>
<td>Date</td>
<td>{{ today }}</td>
</tr>
<tr>
<td>Heure</td>
<td>{{ now }}</td>
</tr>
<tr>
<td>Banque</td>
<td>{{ bankName }}</td>
</tr>
<tr>
<td>ID Utilisateur</td>
<td>{{ userId }}</td>
</tr>
<tr>
<td>ID Partenaire</td>
<td>{{ partnerId }}</td>
</tr>
</table>
<div>
<p>Clé d'identification publique (X002)</p>
<p>Exposant ({{ keyExponentBits X002 }} Bit):</p>
<p>
<code>{{ keyExponent X002 }}</code>
</p>
<p>Modulo ({{ keyModulusBits X002 }} Bit):</p>
<p>
<code>{{ keyModulus X002 }}</code>
</p>
<p>Hash (SHA-256):</p>
<p>
<code>{{ sha256 X002 }}</code>
</p>
<p>Suite à la page 2 ...</p>
<div style="page-break-after:always"></div>
<h2>Lettre d'initialisation pour clés électroniques bancaires (HIA) - Page 2/2</h2>
<table>
<tr>
<td>Date</td>
<td>{{ today }}</td>
</tr>
<tr>
<td>Heure</td>
<td>{{ now }}</td>
</tr>
<tr>
<td>Banque</td>
<td>{{ bankName }}</td>
</tr>
<tr>
<td>ID Utilisateur</td>
<td>{{ userId }}</td>
</tr>
<tr>
<td>ID Partenaire</td>
<td>{{ partnerId }}</td>
</tr>
</table>
</div>
<div>
<p>Clé de chiffrement publique (E002)</p>
<p>Exposant ({{ keyExponentBits E002 }} Bit):</p>
<p>
<code>{{ keyExponent E002 }}</code>
</p>
<p>Modulo ({{ keyModulusBits E002 }} Bit):</p>
<p>
<code>{{ keyModulus E002 }}</code>
</p>
<p>Hash (SHA-256):</p>
<p>
<code>{{ sha256 E002 }}</code>
</p>
<p>Je confirme par la présente les clés publiques ci-dessus.</p>
<br/>
<br/>
<br/>
<br/>
<table>
<tr>
<td>_________________________</td>
<td>_________________________</td>
<td>_________________________</td>
</tr>
<tr>
<td>Lieu/Date</td>
<td>Nom/Entreprise</td>
<td>Signature</td>
</tr>
</table>
</div>
</body>

</html>

0 comments on commit 2d580c0

Please sign in to comment.