Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
25 commits
Select commit Hold shift + click to select a range
f16b626
Add test for current account creation and account credential proof
DOBEN Oct 7, 2025
0111421
Fix test case
DOBEN Oct 8, 2025
0319869
Ar/cor 1970 identity credential attributes prover and verifier copied…
allanbrondum Oct 8, 2025
b01b11d
Move tests
DOBEN Oct 9, 2025
84f1abc
Merge branch 'ar/cor-1939-verifiable-presentations-from-id-credential…
DOBEN Oct 9, 2025
b63bda2
Fix text
DOBEN Oct 9, 2025
4c61894
Merge pull request #752 from Concordium/identity-proofs
DOBEN Oct 10, 2025
8167ddb
simplify identity attribute credentials prover and verifier (#754)
allanbrondum Oct 15, 2025
4b5cfc9
Extend the concept of a challenge
DOBEN Oct 15, 2025
8f0c8b6
Add file which was ignored by git
DOBEN Oct 15, 2025
256edfd
merge
allanbrondum Oct 15, 2025
7ad8d42
Remove IsChallenge trait
DOBEN Oct 16, 2025
e1e78ee
Generalize context
DOBEN Oct 16, 2025
69697bd
Add test
DOBEN Oct 16, 2025
6a9adae
Add comments how to treat variable length types in random oracle cons…
DOBEN Oct 17, 2025
ac721dd
Add comments how to deal with structs/enum in random oracle construct
DOBEN Oct 17, 2025
2fe9cdb
Small comment improvement
DOBEN Oct 17, 2025
fe54430
Revise comments
DOBEN Oct 19, 2025
def7d67
Revision
DOBEN Oct 20, 2025
387f047
Remove unused serialization
DOBEN Oct 20, 2025
afc408e
Address review comments
DOBEN Oct 20, 2025
5fbbb58
Merge pull request #768 from Concordium/extend-concept-of-challenge
DOBEN Oct 21, 2025
52a3be8
Ar/cor 1972 signature sigma protocol (#763)
allanbrondum Oct 21, 2025
759b4dd
merge
allanbrondum Oct 21, 2025
040f934
StructuredDigest (#774)
allanbrondum Oct 22, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 1 addition & 2 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,6 @@ Concordium.cabal
*.pdf
*.csv
*.svg
*.html

# CMake build folder
build/
Expand Down Expand Up @@ -41,4 +40,4 @@ idiss-csharp/*/obj
**/*.nix
**/flake.lock

.DS_STORE
.DS_STORE
2 changes: 2 additions & 0 deletions rust-src/concordium_base/CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,8 @@
- Removed `ChainParameterVersionX` types and the `MintDistributionFamily`, `GASRewardsFamily` and `AuthorizationsFamily` traits and their implementations.
- Revised `UpdateSigner` implementations not to use references, since the one method (`sign_update_hash`) already takes a reference (`&self`).
- Made `find_authorized_keys` public for easier re-use.
- Introduced the trait `StructuredDigest` to add data to `RandomOracle` and other hashes
- Removed the method `RandomOracle::add` and deprecated `RandomOracle::extend_from`

## 8.0.0-alpha.3 (2025-10-08)

Expand Down
8 changes: 8 additions & 0 deletions rust-src/concordium_base/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -48,3 +48,11 @@ platform specific limitations though.
The minimum supported Rust version is stated in the `Cargo.toml` manifest.
Changes in this minimal supported version are going to be accompanied by at
least a minor version increase.

### Generating docs

In order to display mathematical typesetting (especially used on crypto modules and types),
KaTeX headers must be inserted into the generated documentation:
```sh
RUSTDOCFLAGS="--html-in-header docs/assets/katex-header.html" cargo doc --no-deps
```
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
//! Logarithmic sized inner product proof used as base for the other proofs in
//! this crate
use crate::random_oracle::StructuredDigest;
use crate::{
common::*,
curve_arithmetic::{multiexp, Curve, Field},
Expand Down
4 changes: 2 additions & 2 deletions rust-src/concordium_base/src/bulletproofs/range_proof.rs
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
//! Implementation of range proofs along the lines of bulletproofs
pub use super::utils::Generators;
use super::{inner_product_proof::*, utils::*};
use crate::random_oracle::StructuredDigest;
use crate::{
common::*,
curve_arithmetic::{multiexp, Curve, Field, MultiExp, PrimeField, Value},
Expand All @@ -10,8 +12,6 @@ use crate::{
use rand::*;
use std::iter::once;

pub use super::utils::Generators;

/// Bulletproof style range proof
#[derive(Clone, Serialize, SerdeBase16Serialize, Debug)]
#[allow(non_snake_case)]
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
//! Implementation of set membership proof along the lines of bulletproofs
use super::{inner_product_proof::*, utils::*};
use crate::random_oracle::StructuredDigest;
use crate::{
common::*,
curve_arithmetic::{multiexp, Curve, Field, MultiExp},
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
//! Implementation of set-non-membership proof along the lines of bulletproofs
use super::{inner_product_proof::*, utils::*};
use crate::random_oracle::StructuredDigest;
use crate::{
common::*,
curve_arithmetic::{multiexp, Curve, Field, MultiExp},
Expand Down
1 change: 1 addition & 0 deletions rust-src/concordium_base/src/eddsa_ed25519/dlog_ed25519.rs
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
//! curve25519 (cf. "Proof of Knowledge of Discrete Logarithm" Section 9.2.1,
//! Bluepaper v1.2.5) which enables one to prove knowledge of the discrete
//! logarithm without revealing it.
use crate::random_oracle::StructuredDigest;
use crate::{common::*, random_oracle::RandomOracle};
use anyhow::bail;
use curve25519_dalek::{
Expand Down
10 changes: 6 additions & 4 deletions rust-src/concordium_base/src/id/account_holder.rs
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
//! Functionality needed by the account holder, either when interacting with the
//! identity provider, or when interacting with the chain.
use super::{id_proof_types::ProofVersion, secret_sharing::*, types::*, utils};
use crate::random_oracle::StructuredDigest;
use crate::{
bulletproofs::{
inner_product_proof::inner_product,
Expand Down Expand Up @@ -486,11 +487,11 @@ fn generate_pio_common<'a, P: Pairing, C: Curve<Scalar = P::ScalarField>, R: ran
/// Convenient data structure to collect data related to a single AR
pub struct SingleArData<'a, C: Curve> {
pub ar: &'a ArInfo<C>,
share: Value<C>,
pub share: Value<C>,
pub encrypted_share: Cipher<C>,
encryption_randomness: crate::elgamal::Randomness<C>,
pub encryption_randomness: crate::elgamal::Randomness<C>,
pub cmm_to_share: Commitment<C>,
randomness_cmm_to_share: PedersenRandomness<C>,
pub randomness_cmm_to_share: PedersenRandomness<C>,
}

type SharingData<'a, C> = (
Expand Down Expand Up @@ -954,6 +955,7 @@ pub fn create_unsigned_credential<
Ok((info, commitment_rands))
}

/// Compute proof of knowledge signature
#[allow(clippy::too_many_arguments)]
fn compute_pok_sig<
P: Pairing,
Expand Down Expand Up @@ -1099,7 +1101,7 @@ fn compute_pok_sig<
/// For the other values the verifier (the chain) will compute commitments with
/// randomness 0 in order to verify knowledge of the signature.
#[allow(clippy::too_many_arguments)]
pub fn compute_commitments<C: Curve, AttributeType: Attribute<C::Scalar>, R: Rng>(
fn compute_commitments<C: Curve, AttributeType: Attribute<C::Scalar>, R: Rng>(
commitment_key: &PedersenKey<C>,
alist: &AttributeList<C::Scalar, AttributeType>,
prf_key: &prf::SecretKey<C>,
Expand Down
1 change: 1 addition & 0 deletions rust-src/concordium_base/src/id/chain.rs
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
//! Functionality needed by the chain to verify credential deployments.
use super::{secret_sharing::Threshold, types::*, utils};
use crate::random_oracle::StructuredDigest;
use crate::{
bulletproofs::range_proof::verify_less_than_or_equal,
common::{to_bytes, types::TransactionTime},
Expand Down
1 change: 1 addition & 0 deletions rust-src/concordium_base/src/id/id_prover.rs
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
//! accounts.

use super::{id_proof_types::*, types::*};
use crate::random_oracle::StructuredDigest;
use crate::{
bulletproofs::{
range_proof::{prove_in_range, RangeProof},
Expand Down
1 change: 1 addition & 0 deletions rust-src/concordium_base/src/id/id_verifier.rs
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@ use crate::bulletproofs::{
};

use super::id_proof_types::*;
use crate::random_oracle::StructuredDigest;
use crate::{
curve_arithmetic::{Curve, Field},
pedersen_commitment::{
Expand Down
Loading