Skip to content
Snippets Groups Projects
Commit 3beece1d authored by Millicent Billette's avatar Millicent Billette
Browse files

v3.3.3 :

FIX: no more import "crypto" from browser
parent 6be3ecc3
Branches
Tags v3.3.3
No related merge requests found
Pipeline #17708 passed with warnings
......@@ -15,7 +15,11 @@ et ce projet adhère au [versionnage sémantique](https://semver.org/spec/v2.0.0
## [Non-publié/Non-Stabilisé] (par [1000i100])
## [Version 3.3.2] - 2022-09-30 (par [1000i100])
## [Version 3.3.3] - 2022-11-15 (par [1000i100])
### Corrections
- les versions 3.3.x antérieur à celle-ci, cherchaient à importer la lib crypto de node depuis le navigateur c'est corrigé.
## [Version 3.3.2] - 2022-11-12 (par [1000i100])
### Corrections
- export de sha256 pour le rendre utilisable par les clients.
......@@ -94,8 +98,9 @@ et ce projet adhère au [versionnage sémantique](https://semver.org/spec/v2.0.0
- intégration des librairies de crypto nécessaires
- calcul de la clef publique correspondant à chaque combinaison de secrets saisie, et comparaison à la clef publique de référence.
[Non-publié/Non-Stabilisé]: https://git.duniter.org/libs/g1lib.js/-/compare/v3.3.2...master
[Non-publié/Non-Stabilisé]: https://git.duniter.org/libs/g1lib.js/-/compare/v3.3.3...master
[Version 3.3.3]: https://git.duniter.org/libs/g1lib.js/-/compare/v3.3.2...v3.3.3
[Version 3.3.2]: https://git.duniter.org/libs/g1lib.js/-/compare/v3.3.1...v3.3.2
[Version 3.3.1]: https://git.duniter.org/libs/g1lib.js/-/compare/v3.3.0...v3.3.1
[Version 3.3.0]: https://git.duniter.org/libs/g1lib.js/-/compare/v3.2.0...v3.3.0
......
......@@ -20,9 +20,16 @@ try {
}
try {
fs.writeFileSync('generated/vendors/@noble-ed25519.mjs',
fs.writeFileSync('generated/vendors/@noble-ed25519-node.mjs',
(fs.readFileSync('node_modules/@noble/ed25519/lib/esm/index.js', 'utf8'))
.replace(`import * as nodeCrypto from 'crypto';`,`let nodeCrypto;\nif(typeof require !== 'undefined') nodeCrypto = require('crypto');`)
, 'utf8');
} catch (error) {
console.error(error);
}
try {
fs.writeFileSync('generated/vendors/@noble-ed25519-browser.mjs',
(fs.readFileSync('node_modules/@noble/ed25519/lib/esm/index.js', 'utf8'))
.replace(`import * as nodeCrypto from 'crypto';`,`let nodeCrypto;`)
, 'utf8');
} catch (error) {
console.error(error);
......
{
"name": "g1lib",
"version": "3.3.2",
"version": "3.3.3",
"description": "An ubiquitous static javascript toolbox lib for Ǧ1 / Duniter ecosystem with reliability in mind.",
"main": "nodejs/all.mjs",
"browser": "browser/all.mjs",
......
This diff is collapsed.
......@@ -31,7 +31,7 @@
"test:production:npm:nodejs:clean": "rm -rf generated/npm/nodejs/*.test*.mjs",
"test:browser": "run-s test:browser:**",
"test:browser:cp": "cp generated/tmpBrowser/*.test*.mjs generated/npm/browser/",
"test:browser:test": "cd generated/npm/browser/ && browser-ava **.test.mjs --chromium --firefox",
"test:browser:test": "cd generated/npm/browser/ && PORT=8478 browser-ava **.test.mjs --chromium --firefox",
"test:browser:test-e2e": "cd generated/npm/browser/ && browser-ava **.test-e2e.mjs --chromium --firefox",
"test:browser:clean": "rm -rf generated/npm/browser/*.test*.mjs",
"watch": "chokidar src/* -c \"npm run test:dev:runTests\"",
......@@ -49,21 +49,21 @@
},
"devDependencies": {
"@jscpd/badge-reporter": "^3.4.5",
"ava": "^4.3.3",
"ava": "^5.1.0",
"badgen": "^3.2.2",
"browser-ava": "^1.0.0",
"browser-ava": "^1.1.0",
"c8": "^7.12.0",
"chokidar-cli": "^3.0.0",
"es6-plato": "https://github.com/1000i100/es6-plato#master",
"eslint-plugin-ava": "^13.2.0",
"eslint-plugin-promise": "^6.1.0",
"eslint-plugin-promise": "^6.1.1",
"eslint-plugin-unicorn": "^44.0.2",
"jscpd": "^3.5.0",
"jscpd": "^3.5.1",
"mkdirp": "^1.0.4",
"npm-run-all": "^4.1.5",
"rollup": "^3.2.3",
"terser": "^5.15.0",
"xo": "^0.52.3"
"rollup": "^3.3.0",
"terser": "^5.15.1",
"xo": "^0.52.4"
},
"disabledDependenciesTODOAddComplexityQualityCheck": {
"ecma-nacl": "^2.5.0",
......
export const fetch = async () => 0;
export const random = async () => 0;
export const sha512 = async () => 0;
import {fetch,random, ed25519} from './only-nodejs.mjs';
export {fetch,random, ed25519};
export async function fetch(...args) {
return window.fetch(...args); // eslint-disable-line no-undef
import * as ed25519 from '../../generated/vendors/@noble-ed25519-browser.mjs';
const fetch = window.fetch;
async function random(u8a,bytes){
if(!u8a && !bytes) return Math.random();
if(!bytes && typeof u8a === "number"){
bytes = u8a;
u8a = new Uint8Array(bytes);
}
const QUOTA = 65536;
const n = bytes;
const v = new Uint8Array(bytes);
for (let i = 0; i < n; i += QUOTA) crypto.getRandomValues(v.subarray(i, i + Math.min(n - i, QUOTA)));
for (let i = 0; i < n; i++) u8a[i] = v[i];
return u8a;
}
export {fetch, random, ed25519}
import fetch from '../../node_modules/node-fetch/lib/index.mjs';
export {fetch};
import * as ed25519 from '../../generated/vendors/@noble-ed25519-node.mjs';
//import fetch from '../../node_modules/node-fetch/src/index.js';
//import fetch from 'node-fetch';
//import crypto from "crypto";
export {fetch,random, ed25519};
function random(u8a,bytes){
if(!u8a && !bytes) return Math.random();
if(!bytes && typeof u8a === "number"){
bytes = u8a;
u8a = new Uint8Array(bytes); // Buffer pour les vieilles versions de node
}
const n = bytes;
const v = crypto.randomBytes(n);
for (let i = 0; i < n; i++) u8a[i] = v[i];
return u8a;
}
......@@ -3,10 +3,12 @@
import scrypt from '../generated/vendors/scrypt.mjs';
import sha256 from '../node_modules/js-sha256/src/sha256.mjs';
import nacl from '../generated/vendors/nacl.mjs';
import * as ed25519 from '../node_modules/@noble/ed25519/lib/esm/index.js';
import sha from '../node_modules/js-sha256/src/sha256.mjs';
// Alt import * as ed25519 from '../node_modules/noble-ed25519/index.mjs';
import {convertPublicKey, convertSecretKey} from '../node_modules/ed2curve/src/index.mjs';
//import {convertPublicKey} from '../node_modules/ed2curve-esm/dist-src/index.mjs';
import {b58, b64} from './basex.mjs';
import {random, ed25519} from './context-dependant/generics.mjs';
nacl.setPRNG(random);
export const mockRandom = nacl.setPRNG;
export {b58, b64, sha256};
......@@ -124,13 +126,16 @@ export function onlyPubKey(pubKeyWithChecksum){
export function isDuniterPubKey(b58pubKey){
return /^[A-HJ-NP-Za-km-z1-9]{43,44}$/.test(b58pubKey) && b58.decode(b58pubKey).length <=32;
}
export function isEd25519PubKey(b58pubKey){
try{
export function checkEd25519PubKey(b58pubKey){
const binPubKey = pubKey2bin(b58pubKey);
ed25519.Point.fromHex(binPubKey);
} catch (e){return false;}
return true;
}
export function isEd25519PubKey(b58pubKey){
try{
return checkEd25519PubKey(b58pubKey);
} catch (e){return false;}
}
export function checkKey(pubKey, checkRawPubKey= true) {
const binPubKey = pubKey2bin(pubKey)
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment