Skip to content
This repository was archived by the owner on Feb 25, 2025. It is now read-only.

Commit f40e59e

Browse files
author
Daniel
authored
Restyle features section in readme (airsidemobile#143)
* Update feature section and small changes here and there * Add RSA-OAEP checkmark * Redo serializations section * Use github text emojis * Update changelog * Add old serialization table again
1 parent ba1b664 commit f40e59e

File tree

2 files changed

+48
-44
lines changed

2 files changed

+48
-44
lines changed

CHANGELOG.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,8 @@ merge to master and move them to a respective version upon release.
2222

2323
## Unreleased
2424

25+
- Restyle features section in readme ([#143](https://github.com/airsidemobile/JOSESwift/pull/143))
26+
2527
Add your changes here.
2628

2729
## [1.6.0] - 2019-01-25

README.md

Lines changed: 46 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
<br>
44

55
**JOSESwift** is a modular and extensible framework for the [JOSE](https://datatracker.ietf.org/wg/jose/about/) standards [**JWS**](https://tools.ietf.org/html/rfc7515), [**JWE**](https://tools.ietf.org/html/rfc7516), and [**JWK**](https://tools.ietf.org/html/rfc7517) written in Swift.
6-
It is designed with usage on iOS and pure Swift environments in mind.
6+
It is designed for usage on iOS but could be extended to be used in pure Swift environments.
77

88
[![Build Status](https://travis-ci.org/airsidemobile/JOSESwift.svg?branch=master)](https://travis-ci.org/airsidemobile/JOSESwift)
99

@@ -17,7 +17,6 @@ As of now, usage is limited to iOS. See [Security](#security) for details.
1717
- [Installation](#installation)
1818
- [CocoaPods](#cocoapods)
1919
- [Carthage](#carthage)
20-
- [Swift Package Manager](#swift-package-manager)
2120
- [Usage](#usage)
2221
- [JWS: Digital Signatures](#jws-digital-signatures)
2322
- [JWE: Encryption and Decryption](#jwe-encryption-and-decryption)
@@ -31,52 +30,55 @@ As of now, usage is limited to iOS. See [Security](#security) for details.
3130

3231
## Features
3332

34-
If you are missing a specific feature, algorithm, or serialization, feel free to [submit a pull request](#contributing).
35-
36-
### General
33+
- **JWS**: Digitally signing and verifying arbitrary data using the JWS standard.
34+
- **JWE**: Encrypting and decrypting arbitrary data using the JWE standard.
35+
- **JWK**: Encoding and decoding cryptographic keys.
3736

38-
*Supported serializations:*
37+
If you are missing a specific feature, algorithm, or serialization, feel free to [submit a pull request](#contributing).
3938

40-
| Compact Serialization | JSON Serialization |
41-
| :-------------------: | :----------------: |
39+
### Cryptographic Algorithms
40+
41+
<table>
42+
<tr>
43+
<th colspan="2">:lock_with_ink_pen: JWS</th>
44+
<th rowspan="19"></th>
45+
<th colspan="4">:closed_lock_with_key: JWE</th>
46+
<th rowspan="19"></th>
47+
<th colspan="2">:key: JWK</th>
48+
</tr>
49+
<tr>
50+
<th colspan="2"><a href="https://tools.ietf.org/html/rfc7518#section-3">Digital Signatures and MACs</a></th>
51+
<th colspan="2"><a href="https://tools.ietf.org/html/rfc7518#section-4">Key Management</a></th>
52+
<th colspan="2"><a href="https://tools.ietf.org/html/rfc7518#section-5">Content Encryption</a></th>
53+
<th colspan="2"><a href="https://tools.ietf.org/html/rfc7518#section-6">Keys</a></th>
54+
</tr>
55+
<tr><td><code>HS256</code></td><td></td> <td><code>RSA1_5</code></td><td>:white_check_mark:</td> <td><code>A128CBC-HS256</code></td><td></td> <td><code>RSA</code></td><td>:white_check_mark:</td></tr>
56+
<tr><td><code>HS384</code></td><td></td> <td><code>RSA-OAEP</code></td><td>:white_check_mark:</td> <td><code>A128CBC-HS384</code></td><td></td> <td><code>EC</code></td><td>:white_check_mark:</td></tr>
57+
<tr><td><code>HS512</code></td><td></td> <td><code>RSA-OAEP-256</code></td><td>:white_check_mark:</td> <td><code>A128CBC-HS512</code></td><td>:white_check_mark:</td> <td><code>oct</code></td><td>:white_check_mark:</td></tr>
58+
<tr><td><code>RS256</code></td><td>:white_check_mark:</td> <td><code>A128KW</code></td><td></td> <td><code>A128GCM</code></td><td></td> <th rowspan="14"></th><th rowspan="14"></th></tr>
59+
<tr><td><code>RS384</code></td><td></td> <td><code>A192KW</code></td><td></td> <td><code>A192GCM</code></td><td></td>
60+
<tr><td><code>RS512</code></td><td>:white_check_mark:</td> <td><code>A256KW</code></td><td></td> <td><code>A256GCM</code></td><td></td>
61+
<tr><td><code>ES256</code></td><td>:white_check_mark:</td> <td><code>dir</code></td><td>:white_check_mark:</td> <th rowspan="11"></th><th rowspan="11"></th></tr>
62+
<tr><td><code>ES384</code></td><td>:white_check_mark:</td> <td><code>ECDH-ES</code></td><td></td></tr>
63+
<tr><td><code>ES512</code></td><td>:white_check_mark:</td> <td><code>ECDH-ES+A128KW</code></td><td></td></tr>
64+
<tr><td><code>PS256</code></td><td></td> <td><code>ECDH-ES+A192KW</code></td><td></td></tr>
65+
<tr><td><code>PS384</code></td><td></td> <td><code>ECDH-ES+A256KW</code></td><td></td></tr>
66+
<tr><td><code>PS512</code></td><td></td> <td><code>A128GCMKW</code></td><td></td></tr>
67+
<tr><th rowspan="5"></th><th rowspan="5"></th> <td><code>A192GCMKW</code></td><td></td></tr>
68+
<tr> <td><code>A256GCMKW</code></td><td></td></tr>
69+
<tr> <td><code>PBES2-HS256+A128KW</code></td><td></td></tr>
70+
<tr> <td><code>PBES2-HS384+A192KW</code></td><td></td></tr>
71+
<tr> <td><code>PBES2-HS512+A256KW</code></td><td></td></tr>
72+
</table>
73+
74+
### Serializations
75+
76+
For interchangeability JOSESwift currently supports compact serialization [for JWS](https://tools.ietf.org/html/rfc7515#section-3.1) and [for JWE](https://tools.ietf.org/html/rfc7516#section-3.1).
77+
78+
| Compact Serialization | JSON Serialization |
79+
| :-------------------: | :----------------: |
4280
| :white_check_mark: | |
4381

44-
### JWS :pencil:
45-
46-
Digitally signing and verifying arbitrary data using the JWS standard.
47-
48-
*Supported algorithms:*
49-
50-
| HS256 | HS384 | HS512 | RS256 | RS384 | RS512 | ES256 | ES384 | ES512 | PS256 | PS384 | PS512 |
51-
| :--: | :--: | :--: | :--: | :--: | :--: | :--: | :--: | :--: | :--: | :--: | :--: |
52-
| | | | :white_check_mark: | | :white_check_mark: | :white_check_mark: | :white_check_mark: | :white_check_mark: | | | |
53-
54-
### JWE :lock:
55-
56-
Encrypting and decrypting arbitrary data using the JWE standard.
57-
58-
*Supported key encryption algorithms:*
59-
60-
| RSA1_5 | RSA-OAEP | RSA-OAEP-256 | A128KW | A192KW | A256KW | dir | ECDH-ES | ECDH-ES+A128KW | ECDH-ES+A192KW | ECDH-ES+A256KW | A128GCMKW | A192GCMKW | A256GCMKW | PBES2-HS256+A128KW | PBES2-HS384+A192KW | PBES2-HS512+A256KW |
61-
| :--: | :--: | :--: | :--: | :--: | :--: | :--: | :--: | :--: | :--: | :--: | :--: | :--: | :--: | :--: | :--: | :--: |
62-
| :white_check_mark: | |:white_check_mark:| | | | :white_check_mark: | | | | | | | | | | |
63-
64-
*Supported content encryption algorithms:*
65-
66-
| A128CBC-HS256 | A192CBC-HS384 | A256CBC-HS512 | A128GCM | A192GCM | A256GCM |
67-
| :--: | :--: | :--: | :--: | :--: | :--: |
68-
| | | :white_check_mark: | | | |
69-
70-
### JWK :key:
71-
72-
Encoding and decoding RSA public key data in PKCS#1 format as well as iOS `SecKey`s.
73-
74-
*Supported key types:*
75-
76-
| EC | RSA | oct |
77-
| :--: | :--: | :--: |
78-
| :white_check_mark: | :white_check_mark: | :white_check_mark: |
79-
8082
## Installation
8183

8284
### CocoaPods

0 commit comments

Comments
 (0)