Skip to content

Commit

Permalink
polish docs
Browse files Browse the repository at this point in the history
  • Loading branch information
JesusMcCloud committed Jan 17, 2025
1 parent 0cca182 commit f441f32
Show file tree
Hide file tree
Showing 3 changed files with 32 additions and 24 deletions.
28 changes: 16 additions & 12 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -25,29 +25,33 @@
## Kotlin Multiplatform Crypto/PKI Library with ASN1 Parser + Encoder


This [Kotlin Multiplatform](https://kotlinlang.org/docs/multiplatform.html) library provides platform-independent data
types and functionality related to crypto and PKI applications:

* **Multiplatform ECDSA and RSA Signer and Verifier** → Check out the included [CMP demo App](demoapp) to see it in action
* **Supports Attestation on iOS and Android**
* **Biometric Authentication on Android and iOS without Callbacks or Activity Passing** (✨Magic!✨)
* **Multiplatform ECDH key agreement**
* **Multiplatform, platform-native crypto** → Check out the included [CMP demo App](app.md) to see it in
action!
* **ECDSA and RSA Signer and Verifier**
* **Multiplatform ECDH key agreement**
* **Hardware-Backed crypto on Android and iOS**
* **Platform-native attestation on iOS and Android**
* **Configurable biometric authentication on Android and iOS without callbacks or activity passing** (✨Magic!✨)
* Public Keys (RSA and EC)
* Private Keys (RSA and EC)
* Algorithm Identifiers (Signatures, Hashing)
* X509 Certificate Class (create, encode, decode)
* Certification Request (CSR)
* ObjectIdentifier Class with human-readable notation (e.g. 1.2.9.6245.3.72.13.4.7.6)
* Generic ASN.1 abstractions to operate on and create arbitrary ASN.1 Data
* JOSE-related data structures (JSON Web Keys, JWT, etc…)
* COSE-related data structures (COSE Keys, CWT, etc…)
* Serializability of all ASN.1 classes for debugging **AND ONLY FOR DEBUGGING!!!** *Seriously, do not try to deserialize ASN.1 classes through kotlinx.serialization! Use `decodeFromDer()` and its companions!*
* Serializability of all ASN.1 classes for debugging **and only for debugging!!!** *Seriously, do not try to deserialize
ASN.1 classes through kotlinx.serialization! Use `decodeFromDer()` and its companions!*
* 100% pure Kotlin BitSet
* Exposes Multibase Encoder/Decoder as an API dependency including [Matthew Nelson's smashing Base16, Base32, and Base64 encoders](https://github.com/05nelsonm/encoding)
* Exposes Multibase Encoder/Decoder as an API dependency
including [Matthew Nelson's smashing Base16, Base32, and Base64 encoders](https://github.com/05nelsonm/encoding)
* **ASN.1 Parser and Encoder including a DSL to generate ASN.1 structures**
* Parse, create, explore certificates, public keys, CSRs, and **arbitrary ASN.1* structures* on all supported platforms

This last bit means that
**you can work with X509 Certificates, public keys, CSRs and arbitrary ASN.1 structures on iOS.**
The very first bit means that you can verify signatures on the JVM, Android and on iOS.
This last bit means that you can share ASN.1-related logic across platforms.
The very first bit means that you can create and verify signatures on the JVM, Android and on iOS, using platform-native
crypto hardware.

### Do check out the full manual with examples and API docs [here](https://a-sit-plus.github.io/signum/)!
This README provides just an overview.
Expand Down
5 changes: 3 additions & 2 deletions docs/docs/app.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,13 +11,14 @@ hide:


This app showcases the _Supreme_ KMP Crypto provider on JVM, Android and on iOS.
It is possible to generate key pairs, sign data, and verify the signature.
It is possible to generate key pairs, sign data, verify the signature, and domonstrate
key agreement ([souce code](https://github.com/a-sit-plus/signum/blob/main/demoapp/)).

Generation of attestation statements is also supported, although on iOS, only P-256 keys can be attested due to platform constraints.
The default JVM provider does not natively support the creation of attestation statements, so it is a NOOP there.

!!! bug inline end
See [important remarks](features.md#android-key-agreement) on key agreement for Android!
The Android OS has a bug related to key agreement in hardware. See [important remarks](features.md#android-key-agreement) on key agreement!

ECDH key agreement is also implemented across platforms.

Expand Down
23 changes: 13 additions & 10 deletions docs/docs/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,13 +7,15 @@
# Signum – Kotlin Multiplatform Crypto/PKI Library and ASN1 Parser + Encoder

This [Kotlin Multiplatform](https://kotlinlang.org/docs/multiplatform.html) library provides platform-independent data
types and functionality related to crypto and PKI applications:

* **Multiplatform ECDSA and RSA Signer and Verifier** → Check out the included [CMP demo App](app.md) to see it in
action
* **Supports Attestation on iOS and Android**
* **Biometric Authentication on Android and iOS without Callbacks or Activity Passing** (✨Magic!✨)
* **Multiplatform ECDH key agreement**
types and and platform-native functionality related to crypto and PKI applications:

* **Multiplatform, platform-native crypto** → Check out the included [CMP demo App](app.md) to see it in
action!
* **ECDSA and RSA Signer and Verifier**
* **Multiplatform ECDH key agreement**
* **Hardware-Backed crypto on Android and iOS**
* **Platform-native attestation on iOS and Android**
* **Configurable biometric authentication on Android and iOS without callbacks or activity passing** (✨Magic!✨)
* Public Keys (RSA and EC)
* Private Keys (RSA and EC)
* Algorithm Identifiers (Signatures, Hashing)
Expand All @@ -29,10 +31,11 @@ types and functionality related to crypto and PKI applications:
* Exposes Multibase Encoder/Decoder as an API dependency
including [Matthew Nelson's smashing Base16, Base32, and Base64 encoders](https://github.com/05nelsonm/encoding)
* **ASN.1 Parser and Encoder including a DSL to generate ASN.1 structures**
* Parse, create, explore certificates, public keys, CSRs, and **arbitrary ASN.1* structures* on all supported platforms

This last bit means that
**you can work with X509 Certificates, public keys, CSRs and arbitrary ASN.1 structures on iOS.**
The very first bit means that you can create and verify signatures on the JVM, Android and on iOS.
This last bit means that you can share ASN.1-related logic across platforms.
The very first bit means that you can create and verify signatures on the JVM, Android and on iOS, using platform-native
crypto hardware.

**We also provide comprehensive API docs [here](dokka/index.html)**!

Expand Down

0 comments on commit f441f32

Please sign in to comment.