diff --git a/CHANGELOG.fr.md b/CHANGELOG.fr.md
index 006e1a3321ea13db2971da3c312a2f504264e2e6..eda12cdfd60f499ab5bcf505ecec8c144735879b 100644
--- a/CHANGELOG.fr.md
+++ b/CHANGELOG.fr.md
@@ -15,6 +15,10 @@ 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.1] - 2022-09-30 (par [1000i100])
+### Corrections
+- suppression de crypto.isPubkey(pubkey) qui ne validait qu'à partir d'une regex contrairement à crypto.isPubKey(pubKey) qui effectue les vérifications implémentées dans la v3.3.0
+
 ## [Version 3.3.0] - 2022-09-30 (par [1000i100])
 ### Ajouté
 - crypto.isPubKey(pubKey) identique à checkKey mais retourne vrai ou faux là où checkKey throw une erreur en cas d'échec de validation.
@@ -86,8 +90,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.0...master
+[Non-publié/Non-Stabilisé]: https://git.duniter.org/libs/g1lib.js/-/compare/v3.3.1...master
 
+[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
 [Version 3.2.0]: https://git.duniter.org/libs/g1lib.js/-/compare/v3.1.0...v3.2.0
 [Version 3.1.0]: https://git.duniter.org/libs/g1lib.js/-/compare/v3.0.3...v3.1.0
diff --git a/npm/package.json b/npm/package.json
index 152c27660c00c563666163bb7c19dd7ce916518a..a6ca082afb5049719c548dfe1c0bda1648d0abf0 100644
--- a/npm/package.json
+++ b/npm/package.json
@@ -1,6 +1,6 @@
 {
   "name": "g1lib",
-  "version": "3.3.0",
+  "version": "3.3.1",
   "description": "An ubiquitous static javascript toolbox lib for Ǧ1 / Duniter ecosystem with reliability in mind.",
   "main": "nodejs/all.mjs",
 	"browser": "browser/all.mjs",
diff --git a/src/crypto.mjs b/src/crypto.mjs
index 4ad66372bd95a74dd5ea13ab7a1a19b40e9a4a9f..5fb9f298c2827c19e6aee93b9855ae58cd4d296e 100644
--- a/src/crypto.mjs
+++ b/src/crypto.mjs
@@ -13,8 +13,6 @@ const sha256 = sha();
 
 const generateKeypair = nacl.sign.keyPair.fromSeed;
 
-export const isPubkey = (value) => /^[A-HJ-NP-Za-km-z1-9]{42,45}$/.test(value)
-
 export async function idSecPass2rawAll(idSec, pass) {
 	const rawSeed = await saltPass2seed(idSec, pass);
 	const keyPair = seed2keyPair(rawSeed);
diff --git a/src/crypto.test.mjs b/src/crypto.test.mjs
index d241c79e22f31a3d23ccf99183f75c1099903c88..65e87ef8bc41d127d0f6415fa09820a3eaff540a 100644
--- a/src/crypto.test.mjs
+++ b/src/crypto.test.mjs
@@ -30,7 +30,6 @@ test('array sign string', async t => t.is((await app.sign(unsignedDocument, secr
 test('uint8array sign string', async t => t.is((await app.sign(unsignedDocument, secretKey, 'uint8array'))[0], 27));
 test('sign throw for bad output format', async t => t.throwsAsync(() => app.sign(unsignedDocument, secretKey, 'whattt ?')));
 
-test("is a pubkey", (t) => t.is(app.isPubkey(pubKey), true));
 test('b58 should decode/encode well', t => t.is(app.b58.encode(app.b58.decode(pubKey)), pubKey));
 test('b58 on pubKey with leading 1', t => t.is(app.b58.encode(app.b58.decode('12BjyvjoAf5qik7R8TKDJAHJugsX23YgJGi2LmBUv2nx')), '12BjyvjoAf5qik7R8TKDJAHJugsX23YgJGi2LmBUv2nx'));
 test('b58 on pubKey without leading 1', t => t.is(app.b58.encode(app.b58.decode('2BjyvjoAf5qik7R8TKDJAHJugsX23YgJGi2LmBUv2nx')), '2BjyvjoAf5qik7R8TKDJAHJugsX23YgJGi2LmBUv2nx'));