You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
**Fixes**
* Fix calculation of JWK thumbprints according to [RFC7638](https://www.rfc-editor.org/rfc/rfc7638.html)
**Changes**
* Add `provider` module that actually implements cryptography! (Currently in preview, signature verification only)
* Add `COSE_Key` header to `CoseHeader`, defined in OpenID for Verifiable Credential Issuance draft 13
* Fix serialization of COSE signature structures
* Refactor `JsonWebKey`:
* Remove `identifier`, please use `keyId` or `jwkThumbprint` directly
* Add `equalsCryptographically()` to compare two keys by their cryptographic properties only
* Externalise multibase implementation
## Kotlin Multiplatform Crypto/PKI Library and ASN1 Parser + Encoder
10
+
## Kotlin Multiplatform Crypto/PKI Library with ASN1 Parser + Encoder
11
11
12
12
_(We are not doing the Prince thing; the emojis are not part of the project name)_
13
13
@@ -25,6 +25,7 @@ types and functionality related to crypto and PKI applications:
25
25
* COSE-related data structures (COSE Keys, CWT, etc…)
26
26
* 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!*
27
27
* 100% pure Kotlin BitSet
28
+
* Exposes Multibase Encoder/Decoder as an API dependency including [Matthew Nelson's smashing Base16, Base32, and Base64 encoders](https://github.com/05nelsonm/encoding)
28
29
***ASN.1 Parser and Encoder including a DSL to generate ASN.1 structures**
29
30
30
31
This last bit means that
@@ -40,12 +41,12 @@ the JVM, Android and iOS.
40
41
41
42
This library consists of four modules, each of which is published on maven central:
|`provider`|KMP module implementing the actual cryptographic operations.|`at.asitplus.crypto:provider`|
46
-
|`datatypes`| Base module containing the cryptographic data strucures, algorithm identifiers, the ASN.1 parser, OIDs, X.509 certificate, … |`at.asitplus.crypto:datatypes`|
47
-
|`datatypes-jws`| JWS/JWE/JWT add-on module containing JWS/E/T-specific data structures and extensions to convert from/to types contained in the base module. Includes all required kotlinx-serialization magic to allow for spec-compliant de-/serialization.|`at.asitplus.crypto:datatypes-jws`|
48
-
|`datatypes-cose`|COSE add-on module containing all COSE/CWT-specific data structures and extensions to convert from/to types contained in the base module. Includes all required kotlinx-serialization magic to allow for spec-compliant de-/serialization.|`at.asitplus.crypto:datatypes-cose`|
|`provider`|**Preview**KMP module implementing signature verification across platforms. |`at.asitplus.crypto:provider`|
47
+
|`datatypes`| Base module containing the cryptographic data strucures, algorithm identifiers, the ASN.1 parser, OIDs, X.509 certificate, …|`at.asitplus.crypto:datatypes`|
48
+
|`datatypes-jws`| JWS/JWE/JWT add-on module containing JWS/E/T-specific data structures and extensions to convert from/to types contained in the base module. Includes all required kotlinx-serialization magic to allow for spec-compliant de-/serialization. |`at.asitplus.crypto:datatypes-jws`|
49
+
|`datatypes-cose`| COSE add-on module containing all COSE/CWT-specific data structures and extensions to convert from/to types contained in the base module. Includes all required kotlinx-serialization magic to allow for spec-compliant de-/serialization. |`at.asitplus.crypto:datatypes-cose`|
49
50
50
51
This separation keeps dependencies to a minimum, i.e. it enables including only JWT-related functionality, if COSE is irrelevant.
* Multiplatform signature verification **only** based on platform verifiers (and a fallback 100% KMP verifier) ist included as a prerelease. signature creation is on its way.
419
422
* While the ASN.1 parser will happily parse any valid **DER-encoded** ASN.1 structure you throw at it and the encoder will
420
423
write it back correctly too. (No, we don't care for BER, since we want to transport cryptographic material!)
421
424
* Higher-level abstractions (such as `X509Certificate`) are too lenient in some aspects and
@@ -432,10 +435,13 @@ SEQUENCE (8 elem)
432
435
for a couple of months now and we're improving whenever we hit an issue.
433
436
* Number of supported Algorithms is limited to the usual suspects (sorry, no Bernstein curves )-:)
434
437
438
+
435
439
<br>
436
440
437
441
---
442
+
438
443
<palign="center">
439
444
The Apache License does not apply to the A-SIT logo, as it is the sole property of
440
445
A-SIT/A-SIT Plus GmbH and may not be used without explicit permission!
0 commit comments