This release has been yanked by its maintainers, and will be ignored by installers, except when explicitly specified.
quipu-voprf
VOPRF (OPRF verificable) sobre ristretto255 con pruebas DLEQ. Son las primitivas
que hablan con un quipu-oprf-server.
Argon2 solo: robas la BD -> fuerza bruta offline, a la velocidad de tu GPU.
Con VOPRF: robas la BD -> no puedes derivar nada sin la clave del servidor.
Cada intento exige una peticion que el operador ve, limita y corta.
El servidor nunca ve la entrada (llega cegada) y no puede mentir sobre el
resultado: adjunta una prueba DLEQ de que uso la misma k de su clave publica,
y el cliente la verifica contra una clave fijada fuera de banda.
Licencia: Apache-2.0 (distinta del núcleo)
El núcleo de Quipu es AGPL-3.0-or-later. Este crate no, y es deliberado.
Es lo único que un cliente del servicio Quipu OPRF debe enlazar dentro de su servidor de autenticación. Si arrastrara la AGPL, el copyleft de red alcanzaría al SaaS del cliente — y nadie enchufa eso a su auth. Poner Apache solo en el SDK no bastaba: la licencia de un envoltorio no relicencia su dependencia, así que había que separar el código de verdad.
Lo que se cede son ~270 líneas de matemática de curva estándar. No es el foso:
el foso son el servidor, la clave k y la biblioteca post-cuántica completa,
que siguen AGPL. Apache-2.0 y no MIT por la concesión expresa de patentes, que
es lo que revisa el departamento legal de una empresa.
Apache-2.0 fluye hacia AGPL-3.0, así que el núcleo puede seguir usando este crate sin fricción. Al revés no funcionaría — de ahí la dirección de la dependencia.
Uso
use quipu_voprf::{Server, blind, finalize};
// Servidor (guarda k; publica Y = k·G)
let server = Server::from_seed(&seed);
let public_key = server.public_key();
// Cliente: cegar
let (state, blinded) = blind(b"contraseña");
// Servidor: evaluar + probar
let (evaluated, proof) = server.evaluate(&blinded).unwrap();
// Cliente: verificar la prueba contra la clave FIJADA y finalizar
let secret = finalize(b"contraseña", &state, &evaluated, &proof, &public_key)
.expect("la prueba DLEQ no valida: servidor deshonesto o clave incorrecta");
finalize devuelve None si la prueba no valida. No lo ignores: significa que
el servidor no es el que fijaste, o que rotó su clave.
Conforme a RFC 9497
Ciphersuite ristretto255-SHA512, modo VOPRF (contextString = "OPRFV1-\x01-ristretto255-SHA512"). Verificado contra los vectores oficiales
del Apéndice A.1.2: cargo test -p quipu-voprf.
Los tests cubren DeriveKeyPair, Blind, BlindEvaluate + GenerateProof y
Finalize contra los vectores 1 y 2 (lote 1). El vector 3 es de lote 2 y este
API no expone lotes: queda fuera de alcance, y se dice en vez de fingir
cobertura.
Interoperable con cualquier otra implementación de RFC 9497.
Nota: la construcción propia nunca se publicó
Durante el desarrollo hubo una construcción propia (quipu/v2/voprf), inspirada
en la RFC pero no conforme. Nunca llegó a PyPI: 0.2.0 es la primera versión
publicada, y nace conforme. Se documenta aquí porque la instancia
oprf.xiliux.com sí la sirvió hasta el 2026-07-17, y su clave pública cambió al
migrar. La construcción vieja era: dominio propio, hash_to_curve sin
expand_message_xmd y transcripción DLEQ propia. No interoperaba con nadie ni
heredaba el análisis de seguridad de la RFC. Se eliminó, no se deprecó:
dejarla solo invitaba a usarla por error.
Lo que cambia, y no es reversible:
- La salida pasa de 32 a 64 bytes (
Hashes SHA-512; truncarla haría fallar los vectores). - La clave pública del servidor cambia para la misma semilla: ahora se deriva
con
DeriveKeyPair(§3.2), coninfo = "quipu-oprf-server-v1". - Todo secreto endurecido con la versión anterior queda invalidado.
Se hizo con cero clientes, que era la única ventana: el dominio está horneado en
cada secreto y, como k, no rota nunca.
Metadata
Release files for quipu-voprf 0.2.3
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| quipu_voprf-0.2.3.tar.gz | 29.4 kB | Details |
Built distributions (wheels)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| quipu_voprf-0.2.3-cp39-abi3-win_amd64.whl | CPython 3.9 | abi3 | Windows x86-64 | Details |
| quipu_voprf-0.2.3-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl | CPython 3.9 | abi3 | Linux glibc 2.17+ x86-64 | Details |
| quipu_voprf-0.2.3-cp39-abi3-macosx_11_0_arm64.whl | CPython 3.9 | abi3 | macOS 11.0+ ARM64 | Details |
Total release size: 658.9 kB
Release files / quipu_voprf-0.2.3.tar.gz
| Download URL | quipu_voprf-0.2.3.tar.gz |
|---|---|
| Size | 29.4 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
b186c932131ace5ea414b1d8142ef19a0fcdf0136df64783efdaea7d9a3182f1
|
|
BLAKE2b-256 checksum How to use checksums |
3be97d9ec6c4357dbcc35d827bfdb00dd7e62a1d3fb86f5c2302e97c25bc19b5
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Aug 4, 2026.
Transparency logRelease files / quipu_voprf-0.2.3-cp39-abi3-win_amd64.whl
| Download URL | quipu_voprf-0.2.3-cp39-abi3-win_amd64.whl |
|---|---|
| Size | 156.1 kB |
| Tags | CPython 3.9 Windows x86-64 abi3 |
|
SHA-256 checksum How to use checksums |
215422b815ef671dc207b225e1b56a29b6ef4437a663487b1df071b01f801ff6
|
|
BLAKE2b-256 checksum How to use checksums |
3c0720587caa0034a79fed7a37206c2bec54adf45d1f527d21f6bb5c9f26f733
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Aug 4, 2026.
Transparency logRelease files / quipu_voprf-0.2.3-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
| Download URL | quipu_voprf-0.2.3-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl |
|---|---|
| Size | 257.5 kB |
| Tags | CPython 3.9 Linux glibc 2.17+ x86-64 abi3 |
|
SHA-256 checksum How to use checksums |
0ae1e932211a69115b4c732e13a131faaeb797cb0cf2da2fb1622509ba4dae09
|
|
BLAKE2b-256 checksum How to use checksums |
9431db62c8f6faadcd435131a172654c7e71659767f39cbbc15aedd11cdfbb27
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Aug 4, 2026.
Transparency logRelease files / quipu_voprf-0.2.3-cp39-abi3-macosx_11_0_arm64.whl
| Download URL | quipu_voprf-0.2.3-cp39-abi3-macosx_11_0_arm64.whl |
|---|---|
| Size | 215.8 kB |
| Tags | CPython 3.9 abi3 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
6708f4411e758d8356017a86ad2543fd4e6893978e18db2f4e1a373cc182c4cb
|
|
BLAKE2b-256 checksum How to use checksums |
a60eee673c0987ddf86e74921c7c88b91e1764f9d4bd485ad87c4443dfdf5b35
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Aug 4, 2026.
Transparency log