Skip to content

Commit 71342f7

Browse files
committed
Set up first steps (overview + maven) + how-do-I
1 parent 61109ac commit 71342f7

8 files changed

Lines changed: 95 additions & 252 deletions

File tree

_data/navigation.yaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
docs:
22
- title: Getting Started
33
children:
4-
- title: "Installation"
5-
url: /getting-started/installation.html
4+
- title: "First Steps"
5+
url: /getting-started/first-steps.html
66
- title: "5-minute Tutorial"
77
url: /getting-started/5-minute-tutorial.html
88
- title: "Pairing Tutorial"
155 KB
Loading

docs/faq.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,9 +11,9 @@ If you are not sure which repository exactly the issue belongs to, just pick one
1111
## What software is required to use the libraries?
1212

1313
In general you only need Java SDK Version 8 or higher.
14-
To use the Cryptimeleon Mclwrap wrapper, you additionally need to install the Mcl Java bindings (more info on this [here]({% link getting-started/installation.md %})).
14+
To use the Cryptimeleon Mclwrap wrapper, you additionally need to install the Mcl Java bindings (more info on this [here]({% link getting-started/first-steps.md %})).
1515

1616
## Which operating systems do you support?
1717

1818
Since Java is cross-platform, the libraries should run on Linux, Mac OS and Windows.
19-
Keep in mind that we develop on Linux/Mac OS and do not necessarily test on Windows.
19+
Keep in mind that we develop on Linux/Mac OS and do not necessarily test on Windows.

docs/how-do-I.md

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
---
2+
title: How do I ...?
3+
mathjax: true
4+
toc: true
5+
---
6+
7+
This page addresses a bunch of questions of the form "how do I do xyz in Cryptimeleon?".
8+
Consider it Stack-Overflow-style help.
9+
10+
# How do I set up a group?
11+
# How do I compute a pairing?
12+
# How do I hash something?
13+
# How do I send or store a group element?

getting-started/first-steps.md

Lines changed: 77 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,77 @@
1+
---
2+
title: First Steps
3+
toc: true
4+
---
5+
6+
# Project structure overview
7+
Cryptimeleon is composed of several libraries.
8+
![Overview of Cryptimeleon libraries](/assets/cryptimeleon_overview_parts.png)
9+
10+
## Base libraries
11+
### Math
12+
The [Math](https://github.com/cryptimeleon/math) library contains all the basics like bilinear groups, hashing, randomness generation, and serialization.
13+
It is the basis for every other Cryptimeleon library.
14+
15+
### Craco
16+
[Craco](https://github.com/cryptimeleon/craco) (the name has historical reasons) implements various cryptographic primitives and low-level constructions. This includes reusable primitives such as accumulators, commitment schemes, signature and encryption schemes, Sigma protocols, and many more.
17+
18+
The goal of Craco is to provide common cryptographic schemes for use in more high-level protocols.
19+
20+
### Mclwrap
21+
[Mclwrap](https://github.com/cryptimeleon/mclwrap) provides an efficient BN-254 bilinear group implementation (powered by [MCL](https://github.com/herumi/mcl)).
22+
You should definitely use this if you want to run timing benchmarks.
23+
24+
### Predenc, Groupsig
25+
Implementations of various [predicate encryption schemes](https://github.com/cryptimeleon/predenc) and [group signature schemes](https://github.com/cryptimeleon/groupsig).
26+
27+
# Starting from scratch
28+
If you don't have anything right now, it's easiest to get started with our template projects.
29+
30+
- Java: [tbd]
31+
- Android: [tbd]
32+
33+
If you want to use Zero-knowledge proofs, you can generate a basic project containing your protocol with [subzero](https://cptml.org/subzero).
34+
35+
# Including our libraries into your existing project
36+
Our libraries are hosted on Maven Central.
37+
For the sake of this, we assume you want to import Math and Craco (which is usually what you need).
38+
39+
## Maven
40+
Add these dependencies to your `pom.xml`:
41+
42+
```xml
43+
<dependency>
44+
<groupId>org.cryptimeleon</groupId>
45+
<artifactId>math</artifactId>
46+
<version>{{site.mathversion}}</version>
47+
</dependency>
48+
<dependency>
49+
<groupId>org.cryptimeleon</groupId>
50+
<artifactId>craco</artifactId>
51+
<version>{{site.cracoversion}}</version>
52+
</dependency>
53+
```
54+
55+
## Gradle
56+
Add these entries to your `build.gradle`.
57+
58+
```gradle
59+
plugins {
60+
id 'java-library'
61+
}
62+
63+
repositories {
64+
mavenCentral()
65+
}
66+
67+
dependencies {
68+
implementation 'org.cryptimeleon:math:{{site.mathversion}}'
69+
implementation 'org.cryptimeleon:craco:{{site.cracoversion}}'
70+
}
71+
```
72+
73+
# Mclwrap Installation
74+
Eventually, you should probably install [mclwrap](https://github.com/herumi/mcl) because it is a _much_ more efficient bilinear group than [what is available](/docs/bilinear-groups.html) in the Math library by default.
75+
76+
To use MCL in your project, you need to (1) compile and install MCL, and then (2) add the dependency to our the Java bindings.
77+
This process is explained [here](https://github.com/cryptimeleon/mclwrap/blob/main/README.md).

getting-started/installation.md

Lines changed: 0 additions & 65 deletions
This file was deleted.

getting-started/libraries.md

Lines changed: 0 additions & 182 deletions
This file was deleted.

index.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ Cryptimeleon supports the following features (plus others):
3636
## Getting started
3737
- 🙋 To read more, consider our paper [to be published].
3838
- 🧑‍💻 To see example code, read the [5 minute tutorial](/getting-started/5-minute-tutorial.html) or generate a Sigma protocol with [subzero](https://cptml.org/subzero).
39-
- 👷 To build your own application with Cryptimeleon, [install](/getting-started/installation.html) it via Maven or Gradle.
39+
- 👷 To build your own application with Cryptimeleon, [import our projects](/getting-started/first-steps.html) via Maven or gradle. Check out our ["how do I ..."](/docs/how-do-I.html) page if you're stuck.
4040
- 🧙 For everything else, consult this documentation page, follow our [Twitter](https://twitter.com/cryptimeleon), find the code on [GitHub](https://github.com/cryptimeleon), or [contact us](mailto:contactus@cryptimeleon.org).
4141

4242

0 commit comments

Comments
 (0)