All Projects → kevinejohn → blind-signatures

kevinejohn / blind-signatures

Licence: MIT license
Chaum's Blind Signatures

Programming Languages

javascript
184084 projects - #8 most used programming language

Projects that are alternatives of or similar to blind-signatures

binance-signature-examples
Examples of generating HMAC and RSA signature for Binance API
Stars: ✭ 170 (+608.33%)
Mutual labels:  signature
voice-based-email-for-blind
Emailing System for visually impaired persons
Stars: ✭ 35 (+45.83%)
Mutual labels:  blind
gravity-sphincs
Signature scheme submitted to NIST's Post-Quantum Cryptography Project
Stars: ✭ 67 (+179.17%)
Mutual labels:  signature
mini-smooth-signature
小程序版带笔锋手写签名,支持微信/支付宝/钉钉/QQ小程序
Stars: ✭ 85 (+254.17%)
Mutual labels:  signature
trim-canvas
A tiny (< 100 LoC) library for trimming whitespace from a canvas element with no dependencies
Stars: ✭ 48 (+100%)
Mutual labels:  signature
qdigidoc
DEPRECATED DigiDoc3 Client is a program that can be used to sign digitally with ID-card and Mobile-ID, check the validity of digital signatures and open and save documents inside the signature container.
Stars: ✭ 25 (+4.17%)
Mutual labels:  signature
orchestrate-node
This Orchestrate library provides convenient access to the Orchestrate API from applications written in server-side NodeJS
Stars: ✭ 19 (-20.83%)
Mutual labels:  signature
libdigidocpp
Libdigidocpp library offers creating, signing and verification of digitally signed documents, according to XAdES and XML-DSIG standards. Documentation http://open-eid.github.io/libdigidocpp
Stars: ✭ 80 (+233.33%)
Mutual labels:  signature
DeepWay.v2
Autonomous navigation for blind people
Stars: ✭ 65 (+170.83%)
Mutual labels:  blind
prune-horst
Signature scheme submitted to NIST's Post-Quantum Cryptography Project
Stars: ✭ 23 (-4.17%)
Mutual labels:  signature
GPGit
A shell script that automates the process of signing Git sources via GPG
Stars: ✭ 84 (+250%)
Mutual labels:  signature
fortify
Fortify enables web applications to use smart cards, local certificate stores and do certificate enrollment. This is the desktop application repository.
Stars: ✭ 88 (+266.67%)
Mutual labels:  signature
smooth-signature
H5带笔锋手写签名,支持PC端和移动端,任何前端框架均可使用
Stars: ✭ 474 (+1875%)
Mutual labels:  signature
wascap
Embed, extract, and validate capability claims in JWTs for WebAssembly modules
Stars: ✭ 59 (+145.83%)
Mutual labels:  signature
pyseto
A Python implementation of PASETO and PASERK.
Stars: ✭ 21 (-12.5%)
Mutual labels:  signature
blindassist-ios
BlindAssist iOS app
Stars: ✭ 34 (+41.67%)
Mutual labels:  blind
AutomatedOutlookSignature
PowerShell script to automate the creation of Outlook signatures using Active Directory attributes.
Stars: ✭ 36 (+50%)
Mutual labels:  signature
SnortRules
This is an open source Snort rules repository
Stars: ✭ 18 (-25%)
Mutual labels:  signature
pgpainless
Simple to use OpenPGP API based on Bouncy Castle
Stars: ✭ 73 (+204.17%)
Mutual labels:  signature
react-native-signview
Signature view for react native(Android + IOS)
Stars: ✭ 15 (-37.5%)
Mutual labels:  signature

Chaum's Blind Signature

NPM Package

Two implementations of RSA Blind Signatures

  1. ./rsablind.js https://en.wikipedia.org/wiki/Blind_signature

  2. ./rsablind2.js https://github.com/arisath/Blind-RSA

The RSA key generation uses the node-only module node-rsa but everything else should work outside of node.js

Use

npm install --save blind-signatures

const BlindSignature = require('blind-signatures');

const Bob = {
  key: BlindSignature.keyGeneration({ b: 2048 }), // b: key-length
  blinded: null,
  unblinded: null,
  message: null,
};

const Alice = {
  message: 'Hello Chaum!',
  N: null,
  E: null,
  r: null,
  signed: null,
  unblinded: null,
};

// Alice wants Bob to sign a message without revealing it's contents.
// Bob can later verify he did sign the message

console.log('Message:', Alice.message);

// Alice gets N and E variables from Bob's key
Alice.N = Bob.key.keyPair.n.toString();
Alice.E = Bob.key.keyPair.e.toString();

const { blinded, r } = BlindSignature.blind({
  message: Alice.message,
  N: Alice.N,
  E: Alice.E,
}); // Alice blinds message
Alice.r = r;

// Alice sends blinded to Bob
Bob.blinded = blinded;

const signed = BlindSignature.sign({
  blinded: Bob.blinded,
  key: Bob.key,
}); // Bob signs blinded message

// Bob sends signed to Alice
Alice.signed = signed;

const unblinded = BlindSignature.unblind({
  signed: Alice.signed,
  N: Alice.N,
  r: Alice.r,
}); // Alice unblinds
Alice.unblinded = unblinded;

// Alice verifies
const result = BlindSignature.verify({
  unblinded: Alice.unblinded,
  N: Alice.N,
  E: Alice.E,
  message: Alice.message,
});
if (result) {
  console.log('Alice: Signatures verify!');
} else {
  console.log('Alice: Invalid signature');
}

// Alice sends Bob unblinded signature and original message
Bob.unblinded = Alice.unblinded;
Bob.message = Alice.message;

// Bob verifies
const result2 = BlindSignature.verify2({
  unblinded: Bob.unblinded,
  key: Bob.key,
  message: Bob.message,
});
if (result2) {
  console.log('Bob: Signatures verify!');
} else {
  console.log('Bob: Invalid signature');
}
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].