Unverified Commit 741b4dfc authored by Nadim Kobeissi's avatar Nadim Kobeissi 💾
Browse files

Add BLIND and UNBLIND.

parent c16c006d
Pipeline #193 passed with stage
in 25 seconds
......@@ -5,6 +5,9 @@
# Change Log
## 1.0.7
- Add support for the new `BLIND` and `UNBLIND` primitives.
## 1.0.6
- Fix diagrams being hard to read with certain VSCode themes.
......
{
"name": "verifpal",
"version": "1.0.1",
"version": "1.0.6",
"lockfileVersion": 1,
"requires": true,
"dependencies": {
......@@ -49,9 +49,9 @@
"dev": true
},
"@types/node": {
"version": "13.13.2",
"resolved": "https://registry.npmjs.org/@types/node/-/node-13.13.2.tgz",
"integrity": "sha512-LB2R1Oyhpg8gu4SON/mfforE525+Hi/M1ineICEDftqNVTyFg1aRIeGuTvXAoWHc4nbrFncWtJgMmoyRvuGh7A==",
"version": "13.13.4",
"resolved": "https://registry.npmjs.org/@types/node/-/node-13.13.4.tgz",
"integrity": "sha512-x26ur3dSXgv5AwKS0lNfbjpCakGIduWU1DU91Zz58ONRWrIKGunmZBNv4P7N+e27sJkiGDsw/3fT4AtsqQBrBA==",
"dev": true
},
"@types/vscode": {
......@@ -61,45 +61,45 @@
"dev": true
},
"@typescript-eslint/eslint-plugin": {
"version": "2.29.0",
"resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-2.29.0.tgz",
"integrity": "sha512-X/YAY7azKirENm4QRpT7OVmzok02cSkqeIcLmdz6gXUQG4Hk0Fi9oBAynSAyNXeGdMRuZvjBa0c1Lu0dn/u6VA==",
"version": "2.30.0",
"resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-2.30.0.tgz",
"integrity": "sha512-PGejii0qIZ9Q40RB2jIHyUpRWs1GJuHP1pkoCiaeicfwO9z7Fx03NQzupuyzAmv+q9/gFNHu7lo1ByMXe8PNyg==",
"dev": true,
"requires": {
"@typescript-eslint/experimental-utils": "2.29.0",
"@typescript-eslint/experimental-utils": "2.30.0",
"functional-red-black-tree": "^1.0.1",
"regexpp": "^3.0.0",
"tsutils": "^3.17.1"
}
},
"@typescript-eslint/experimental-utils": {
"version": "2.29.0",
"resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-2.29.0.tgz",
"integrity": "sha512-H/6VJr6eWYstyqjWXBP2Nn1hQJyvJoFdDtsHxGiD+lEP7piGnGpb/ZQd+z1ZSB1F7dN+WsxUDh8+S4LwI+f3jw==",
"version": "2.30.0",
"resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-2.30.0.tgz",
"integrity": "sha512-L3/tS9t+hAHksy8xuorhOzhdefN0ERPDWmR9CclsIGOUqGKy6tqc/P+SoXeJRye5gazkuPO0cK9MQRnolykzkA==",
"dev": true,
"requires": {
"@types/json-schema": "^7.0.3",
"@typescript-eslint/typescript-estree": "2.29.0",
"@typescript-eslint/typescript-estree": "2.30.0",
"eslint-scope": "^5.0.0",
"eslint-utils": "^2.0.0"
}
},
"@typescript-eslint/parser": {
"version": "2.29.0",
"resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-2.29.0.tgz",
"integrity": "sha512-H78M+jcu5Tf6m/5N8iiFblUUv+HJDguMSdFfzwa6vSg9lKR8Mk9BsgeSjO8l2EshKnJKcbv0e8IDDOvSNjl0EA==",
"version": "2.30.0",
"resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-2.30.0.tgz",
"integrity": "sha512-9kDOxzp0K85UnpmPJqUzdWaCNorYYgk1yZmf4IKzpeTlSAclnFsrLjfwD9mQExctLoLoGAUXq1co+fbr+3HeFw==",
"dev": true,
"requires": {
"@types/eslint-visitor-keys": "^1.0.0",
"@typescript-eslint/experimental-utils": "2.29.0",
"@typescript-eslint/typescript-estree": "2.29.0",
"@typescript-eslint/experimental-utils": "2.30.0",
"@typescript-eslint/typescript-estree": "2.30.0",
"eslint-visitor-keys": "^1.1.0"
}
},
"@typescript-eslint/typescript-estree": {
"version": "2.29.0",
"resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-2.29.0.tgz",
"integrity": "sha512-3YGbtnWy4az16Egy5Fj5CckkVlpIh0MADtAQza+jiMADRSKkjdpzZp/5WuvwK/Qib3Z0HtzrDFeWanS99dNhnA==",
"version": "2.30.0",
"resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-2.30.0.tgz",
"integrity": "sha512-nI5WOechrA0qAhnr+DzqwmqHsx7Ulr/+0H7bWCcClDhhWkSyZR5BmTvnBEyONwJCTWHfc5PAQExX24VD26IAVw==",
"dev": true,
"requires": {
"debug": "^4.1.1",
......@@ -760,12 +760,6 @@
"is-extglob": "^2.1.1"
}
},
"is-promise": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.1.0.tgz",
"integrity": "sha1-eaKp7OfwlugPNtKy87wWwf9L8/o=",
"dev": true
},
"isexe": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
......@@ -977,13 +971,10 @@
}
},
"run-async": {
"version": "2.4.0",
"resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.0.tgz",
"integrity": "sha512-xJTbh/d7Lm7SBhc1tNvTpeCHaEzoyxPrqNlvSdMfBTYwaY++UJFyXUOxAtsRUXjlqOfj8luNaR9vjCh4KeV+pg==",
"dev": true,
"requires": {
"is-promise": "^2.1.0"
}
"version": "2.4.1",
"resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz",
"integrity": "sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==",
"dev": true
},
"rxjs": {
"version": "6.5.5",
......
......@@ -222,6 +222,18 @@ export default class VerifpalLib {
eg: "RINGSIGNVERIF(G^a, G^b, G^c, m, RINGSIGN(a, G^b, G^c, m)): m",
help: "Verifies if a ring signature can be authenticated. The signer’s public key must match one or more of the public keys provided, but the public keys may be provided in any order and not necessarily in the order used during the RINGSIGN operation."
},
"BLIND": {
arity: 2,
output: 1,
eg: "BLIND(k, m): b",
help: "Message blinding primitive, useful for the implementation of blind signatures. Here, the sender uses the secret \"blinding factor\" `k` in order to blind message `m`, which can then be sent to the signer, who will be able to produce a signature on `m` without knowing `m`. Used in conjunction with UNBLIND -- see UNBLIND's documentation for more information."
},
"UNBLIND": {
arity: 3,
output: 1,
eg: "UNBLIND(k, m, SIGN(a, BLIND(k, m))): SIGN(a, m)",
help: "Once `BLIND(k, m`)` is signed by the signer, the sender can convert `SIGN(a, BLIND(k, m))` to `SIGN(a, m)` by unblinding the message using their secret blinding factor `k`. The resulting unblinded signature can then be used as if it were a regular signature by `a` over `m`."
},
"SHAMIR_SPLIT": {
arity: 1,
output: 3,
......
......@@ -125,7 +125,7 @@ contexts [] {
styles [] = .keyword;
}
: pattern {
regex \= (RINGSIGNVERIF|RINGSIGN|PW_HASH|HASH|HKDF|AEAD_ENC|AEAD_DEC|ENC|DEC|ASSERT|CONCAT|SPLIT|MAC|SIGNVERIF|SIGN|PKE_ENC|PKE_DEC|SHAMIR_SPLIT|SHAMIR_JOIN|G|nil|_)
regex \= (UNBLIND|BLIND|RINGSIGNVERIF|RINGSIGN|PW_HASH|HASH|HKDF|AEAD_ENC|AEAD_DEC|ENC|DEC|ASSERT|CONCAT|SPLIT|MAC|SIGNVERIF|SIGN|PKE_ENC|PKE_DEC|SHAMIR_SPLIT|SHAMIR_JOIN|G|nil|_)
styles [] = .function;
}
: inline_push {
......
......@@ -214,7 +214,7 @@
</dict>
<dict>
<key>match</key>
<string>(RINGSIGNVERIF|RINGSIGN|PW_HASH|HASH|HKDF|AEAD_ENC|AEAD_DEC|ENC|DEC|ASSERT|CONCAT|SPLIT|MAC|SIGNVERIF|SIGN|PKE_ENC|PKE_DEC|SHAMIR_SPLIT|SHAMIR_JOIN|G|nil|_)</string>
<string>(UNBLIND|BLIND|RINGSIGNVERIF|RINGSIGN|PW_HASH|HASH|HKDF|AEAD_ENC|AEAD_DEC|ENC|DEC|ASSERT|CONCAT|SPLIT|MAC|SIGNVERIF|SIGN|PKE_ENC|PKE_DEC|SHAMIR_SPLIT|SHAMIR_JOIN|G|nil|_)</string>
<key>name</key>
<string>support.function.verifpal</string>
</dict>
......@@ -375,7 +375,7 @@
<array>
<dict>
<key>match</key>
<string>(RINGSIGNVERIF|RINGSIGN|PW_HASH|HASH|HKDF|AEAD_ENC|AEAD_DEC|ENC|DEC|ASSERT|CONCAT|SPLIT|MAC|SIGNVERIF|SIGN|PKE_ENC|PKE_DEC|SHAMIR_SPLIT|SHAMIR_JOIN|G|nil|_)</string>
<string>(UNBLIND|BLIND|RINGSIGNVERIF|RINGSIGN|PW_HASH|HASH|HKDF|AEAD_ENC|AEAD_DEC|ENC|DEC|ASSERT|CONCAT|SPLIT|MAC|SIGNVERIF|SIGN|PKE_ENC|PKE_DEC|SHAMIR_SPLIT|SHAMIR_JOIN|G|nil|_)</string>
<key>name</key>
<string>support.function.verifpal</string>
</dict>
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment