Skip to content

Commit

Permalink
updated dependencies, release 1.0.15 (#94)
Browse files Browse the repository at this point in the history
  • Loading branch information
aldenml committed Feb 18, 2023
1 parent 80a1349 commit d14b3d9
Show file tree
Hide file tree
Showing 13 changed files with 58 additions and 73 deletions.
2 changes: 1 addition & 1 deletion CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ else()
set(BUILD_SHARED_LIBS ON)
endif()

project(ecc VERSION 1.0.12)
project(ecc VERSION 1.0.15)
project(ecc LANGUAGES C)

list(APPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/cmake/Modules)
Expand Down
46 changes: 18 additions & 28 deletions bindings/js/dist/ecc.dev.js

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion bindings/js/dist/ecc.min.js

Large diffs are not rendered by default.

20 changes: 7 additions & 13 deletions bindings/js/dist/oprf.d.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,41 +2,35 @@
* Evaluates serialized representations of blinded group elements from the
* client as inputs.
*
* See https://datatracker.ietf.org/doc/html/draft-irtf-cfrg-voprf-08#section-3.3.1.1
*
* @param {Uint8Array} skS private key
* @param {Uint8Array} blindedElement blinded element
* @param {Uint8Array} info
* @return {Promise<Uint8Array>} evaluated element
* @return {Uint8Array} evaluated element
*/
export function oprf_ristretto255_sha512_Evaluate(skS: Uint8Array, blindedElement: Uint8Array, info: Uint8Array): Promise<Uint8Array>;
export function oprf_Evaluate(skS: Uint8Array, blindedElement: Uint8Array, info: Uint8Array): Uint8Array;
/**
* Same as calling `oprf_ristretto255_sha512_Blind` with an
* Same as calling `oprf_Blind` with a
* specified scalar blind.
*
* See https://datatracker.ietf.org/doc/html/draft-irtf-cfrg-voprf-08#section-3.3.3.1
*
* @param {Uint8Array} input message to blind
* @param {Uint8Array} blind scalar to use in the blind operation
* @return {Uint8Array} blinded element
*/
export function oprf_ristretto255_sha512_BlindWithScalar(input: Uint8Array, blind: Uint8Array): Uint8Array;
export function oprf_BlindWithScalar(input: Uint8Array, blind: Uint8Array): Uint8Array;
/**
* See https://datatracker.ietf.org/doc/html/draft-irtf-cfrg-voprf-08#section-3.3.3.1
*
* @param {Uint8Array} input message to blind
* @return object {blind, blindedElement}
*/
export function oprf_ristretto255_sha512_Blind(input: Uint8Array): Promise<{
export function oprf_Blind(input: Uint8Array): {
blind: Uint8Array;
blindedElement: Uint8Array;
}>;
};
/**
* See https://datatracker.ietf.org/doc/html/draft-irtf-cfrg-voprf-08#section-3.3.3.2
*
* @param input the input message
* @param blind
* @param evaluatedElement
* @param {Uint8Array} info
*/
export function oprf_ristretto255_sha512_Finalize(input: any, blind: any, evaluatedElement: any, info: Uint8Array): Promise<Uint8Array>;
export function oprf_Finalize(input: any, blind: any, evaluatedElement: any, info: Uint8Array): Uint8Array;
4 changes: 2 additions & 2 deletions bindings/js/package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion bindings/js/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@aldenml/ecc",
"version": "1.0.13",
"version": "1.0.15",
"description": "elliptic curves crypto functions",
"main": "index.js",
"types": "./dist/index.d.ts",
Expand Down
2 changes: 1 addition & 1 deletion bindings/jvm/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ plugins {
}

group = "org.ssohub"
version = "1.0.13-RC1"
version = "1.0.15"

java {
sourceCompatibility = JavaVersion.VERSION_1_8
Expand Down
2 changes: 1 addition & 1 deletion bindings/jvm/gradle/wrapper/gradle-wrapper.properties
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-7.1.1-all.zip
distributionUrl=https\://services.gradle.org/distributions/gradle-8.0.1-all.zip
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
2 changes: 1 addition & 1 deletion bindings/python/LICENSE
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
Copyright (c) 2021-2022 Alden Torres
Copyright (c) 2021-2023 Alden Torres

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
Expand Down
43 changes: 22 additions & 21 deletions bindings/python/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,51 +7,52 @@

This is the python binding of the [ecc](https://github.com/aldenml/ecc) library.

It is a WebAssembly compilation with a thin layer on
top to expose the cryptographic primitives.

### Features

- [OPRF](#oprf-oblivious-pseudo-random-functions-using-ristretto255)
- [OPRF](#oprf-oblivious-pseudo-random-functions)
- [OPAQUE](#opaque-the-opaque-asymmetric-pake-protocol)
- [Two-Round Threshold Schnorr Signatures with FROST](#two-round-threshold-schnorr-signatures-with-frost)
- [Ethereum BLS Signature](#ethereum-bls-signature)
- [BLS12-381 Pairing](#bls12-381-pairing)
- [Proxy Re-Encryption (PRE)](#proxy-re-encryption-pre)

### OPRF Oblivious pseudo-random functions using ristretto255
### OPRF Oblivious pseudo-random functions

This is an implementation of [draft-irtf-cfrg-voprf-16](https://datatracker.ietf.org/doc/html/draft-irtf-cfrg-voprf-16)
This is an implementation of [draft-irtf-cfrg-voprf-20](https://datatracker.ietf.org/doc/html/draft-irtf-cfrg-voprf-20)
ciphersuite **OPRF(ristretto255, SHA-512)** using `libsodium`.

There are two variants in this protocol: a *base* mode and *verifiable* mode. In the
base mode, a client and server interact to compute `output = F(skS, input, info)`,
where `input` is the client's private input, `skS` is the server's private key, `info`
is the public input, and `output` is the computation output. The client learns `output`
and the server learns nothing. In the verifiable mode, the client also receives proof
that the server used `skS` in computing the function.
An Oblivious Pseudorandom Function (OPRF) is a two-party protocol between client
and server for computing the output of a Pseudorandom Function (PRF). The server
provides the PRF secret key, and the client provides the PRF input. At the end
of the protocol, the client learns the PRF output without learning anything
about the PRF secret key, and the server learns neither the PRF input nor
output.

There are two variations of the basic protocol:

- VOPRF: is OPRF with the notion of verifiability. Clients can verify that the
server used a specific private key during the execution of the protocol.
- POPRF: is a partially-oblivious VOPRF that allows clients and servers to
provide public input to the PRF computation.

The flow is shown below (from the irtf draft):
The OPRF flow is shown below (from the IRTF draft):
```
Client(input, info) Server(skS, info)
----------------------------------------------------------------------
Client(input) Server(skS)
-------------------------------------------------------------------
blind, blindedElement = Blind(input)
blindedElement
---------->
evaluatedElement = Evaluate(skS, blindedElement, info)
evaluatedElement = BlindEvaluate(skS, blindedElement)
evaluatedElement
<----------
output = Finalize(input, blind, evaluatedElement, blindedElement, info)
output = Finalize(input, blind, evaluatedElement)
```

In the verifiable mode of the protocol, the server additionally
computes a proof in Evaluate. The client verifies this proof using
the server's expected public key before completing the protocol and
producing the protocol output.
For the advanced modes VOPRF and POPRF refer to the published draft.

### OPAQUE The OPAQUE Asymmetric PAKE Protocol

Expand Down
2 changes: 1 addition & 1 deletion bindings/python/setup.cfg
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[metadata]
name = libecc
version = 1.0.12
version = 1.0.15
author = Alden Torres
author_email = [email protected]
description = elliptic curves crypto functions
Expand Down
2 changes: 1 addition & 1 deletion deps/libsodium
Submodule libsodium updated 77 files
+7 −9 .github/workflows/ci.yml
+47 −38 .github/workflows/dotnet-core.yml
+1 −1 LICENSE
+5 −4 azure-pipelines.yml
+34 −15 build.zig
+2 −2 builds/msvc/properties/DebugLIB.props
+2 −2 builds/msvc/properties/Release.props
+12 −10 builds/msvc/vs2010/libsodium/libsodium.vcxproj
+45 −0 builds/msvc/vs2010/libsodium/libsodium.vcxproj.filters
+12 −10 builds/msvc/vs2012/libsodium/libsodium.vcxproj
+45 −0 builds/msvc/vs2012/libsodium/libsodium.vcxproj.filters
+12 −10 builds/msvc/vs2013/libsodium/libsodium.vcxproj
+45 −0 builds/msvc/vs2013/libsodium/libsodium.vcxproj.filters
+12 −10 builds/msvc/vs2015/libsodium/libsodium.vcxproj
+45 −0 builds/msvc/vs2015/libsodium/libsodium.vcxproj.filters
+12 −10 builds/msvc/vs2017/libsodium/libsodium.vcxproj
+45 −0 builds/msvc/vs2017/libsodium/libsodium.vcxproj.filters
+12 −10 builds/msvc/vs2019/libsodium/libsodium.vcxproj
+45 −0 builds/msvc/vs2019/libsodium/libsodium.vcxproj.filters
+12 −10 builds/msvc/vs2022/libsodium/libsodium.vcxproj
+45 −0 builds/msvc/vs2022/libsodium/libsodium.vcxproj.filters
+1 −1 configure.ac
+82 −62 dist-build/apple-xcframework.sh
+65 −59 dist-build/emscripten-symbols.def
+27 −27 dist-build/emscripten.sh
+3 −1 dist-build/generate-emscripten-symbols.sh
+2 −2 dist-build/wasm32-wasi.sh
+12 −0 libsodium.vcxproj
+36 −0 libsodium.vcxproj.filters
+3 −2 packaging/dotnet-core/libsodium.pkgproj
+0 −4 packaging/nuget/.gitignore
+0 −13 packaging/nuget/package.bat
+0 −4 packaging/nuget/package.config
+0 −260 packaging/nuget/package.gsl
+0 −10 regen-msvc/libsodium.vcxproj.tpl
+14 −2 src/libsodium/Makefile.am
+81 −33 src/libsodium/crypto_aead/aegis128l/aead_aegis128l.c
+16 −0 src/libsodium/crypto_aead/aegis128l/aead_aegis128l.h
+61 −117 src/libsodium/crypto_aead/aegis128l/aesni/aead_aegis128l_aesni.c
+6 −0 src/libsodium/crypto_aead/aegis128l/aesni/aead_aegis128l_aesni.h
+48 −101 src/libsodium/crypto_aead/aegis128l/armcrypto/aead_aegis128l_armcrypto.c
+6 −0 src/libsodium/crypto_aead/aegis128l/armcrypto/aead_aegis128l_armcrypto.h
+259 −0 src/libsodium/crypto_aead/aegis128l/soft/aead_aegis128l_soft.c
+7 −0 src/libsodium/crypto_aead/aegis128l/soft/aead_aegis128l_soft.h
+78 −31 src/libsodium/crypto_aead/aegis256/aead_aegis256.c
+16 −0 src/libsodium/crypto_aead/aegis256/aead_aegis256.h
+57 −111 src/libsodium/crypto_aead/aegis256/aesni/aead_aegis256_aesni.c
+6 −0 src/libsodium/crypto_aead/aegis256/aesni/aead_aegis256_aesni.h
+47 −98 src/libsodium/crypto_aead/aegis256/armcrypto/aead_aegis256_armcrypto.c
+6 −0 src/libsodium/crypto_aead/aegis256/armcrypto/aead_aegis256_armcrypto.h
+247 −0 src/libsodium/crypto_aead/aegis256/soft/aead_aegis256_soft.c
+7 −0 src/libsodium/crypto_aead/aegis256/soft/aead_aegis256_soft.h
+13 −3 src/libsodium/crypto_aead/aes256gcm/aesni/aead_aes256gcm_aesni.c
+4 −3 src/libsodium/crypto_aead/aes256gcm/armcrypto/aead_aes256gcm_armcrypto.c
+137 −0 src/libsodium/crypto_core/softaes/softaes.c
+33 −6 src/libsodium/crypto_kdf/hkdf/kdf_hkdf_sha256.c
+28 −6 src/libsodium/crypto_kdf/hkdf/kdf_hkdf_sha512.c
+5 −0 src/libsodium/crypto_pwhash/argon2/argon2.c
+5 −0 src/libsodium/crypto_pwhash/scryptsalsa208sha256/crypto_scrypt-common.c
+1 −4 src/libsodium/include/sodium/crypto_aead_aegis128l.h
+0 −3 src/libsodium/include/sodium/crypto_aead_aegis256.h
+28 −2 src/libsodium/include/sodium/crypto_kdf_hkdf_sha256.h
+24 −0 src/libsodium/include/sodium/crypto_kdf_hkdf_sha512.h
+2 −0 src/libsodium/include/sodium/private/implementations.h
+1 −0 src/libsodium/include/sodium/private/quirks.h
+56 −0 src/libsodium/include/sodium/private/softaes.h
+2 −0 src/libsodium/sodium/core.c
+2 −2 src/libsodium/sodium/utils.c
+1 −3 test/default/aead_aegis128l.c
+1 −3 test/default/aead_aegis256.c
+70 −0 test/default/aead_aes256gcm.c
+12 −5 test/default/cmptest.h
+18 −4 test/default/pwhash_argon2i.c
+18 −4 test/default/pwhash_argon2id.c
+3 −3 test/default/sodium_core.c
+58 −28 test/default/wasi-test-wrapper.sh
+8 −2 test/symbols/all-symbols.txt

0 comments on commit d14b3d9

Please sign in to comment.