Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
1 change: 1 addition & 0 deletions docs/.vitepress/config.mts
Original file line number Diff line number Diff line change
Expand Up @@ -65,6 +65,7 @@ export default withMermaid(defineConfig({
{ text: 'pg-curve', link: '/repos/pg-curve' },
{ text: 'ibe', link: '/repos/ibe' },
{ text: 'ibs', link: '/repos/ibs' },
{ text: 'irmars', link: '/repos/irmars' },
],
},
{
Expand Down
46 changes: 46 additions & 0 deletions docs/repos/irmars.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
# irmars

[GitHub](https://github.com/encryption4all/irmars) · Rust · Cryptographic Library

Rust library for interfacing with [Yivi](https://yivi.app) (formerly IRMA) servers. Used by [postguard](/repos/postguard) (`pg-core`, `pg-pkg`, `pg-cli`) to drive the Yivi session flow that issues identity-based decryption keys.

Published on [crates.io](https://crates.io/crates/irmars).

## Why the fork

Forked from [tweedegolf/irmars](https://github.com/tweedegolf/irmars), which has been dormant since 2021. The encryption4all fork was created to:

- Move to `reqwest` 0.12 and `thiserror` 2.0, clearing a stack of unmaintained transitive dependencies that the upstream pin held in place.
- Track current Yivi server behavior (irmago 0.19.2, scheme download from `schemes.yivi.app`).
- Restore an automated release pipeline (`release-plz`) and Conventional Commits enforcement so the crate can ship to crates.io on a predictable cadence.

## How postguard consumes it

`pg-core`, `pg-pkg`, and `pg-cli` depend on the crate from crates.io using Cargo's package rename so existing `use irma::...` call sites keep working without churn:

```toml
[dependencies]
irma = { package = "irmars", version = "0.2.2" }
```

<small>[Source: pg-core/Cargo.toml#L19](https://github.com/encryption4all/postguard/blob/f2f06cd5f5e24ba58f299547e8e78af0173944c7/pg-core/Cargo.toml#L19)</small>

The published crate name is `irmars`; the local crate alias remains `irma`. This was rolled out in [postguard#192](https://github.com/encryption4all/postguard/pull/192).

## Development

### Building

```bash
cargo build
```

### Testing

```bash
cargo test
```

## Releasing

Releases are automated via [release-plz](https://github.com/encryption4all/irmars/pull/1). Merging Conventional Commits to `main` opens a release PR; merging that PR tags the version and publishes to crates.io.
3 changes: 3 additions & 0 deletions docs/repos/overview.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ These are the low-level building blocks that implement the cryptographic primiti
| [pg-curve](/repos/pg-curve) | Rust | Fork of BLS12-381 elliptic curve with target group serialization |
| [ibe](/repos/ibe) | Rust | Identity-Based Encryption schemes on BLS12-381 |
| [ibs](/repos/ibs) | Rust | Identity-Based Signature schemes |
| [irmars](/repos/irmars) | Rust | Client library for talking to Yivi (IRMA) servers |

## Core

Expand Down Expand Up @@ -61,5 +62,7 @@ pg-curve
└── pg-cli
└── ibs (used by pg-core for sender signatures)

irmars (Yivi client) ──── postguard (pg-core, pg-pkg, pg-cli)

cryptify (backend) ─────── postguard-website (file storage)
```
Loading