jwt-aws-kms 0.6.0 → 1.1.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 914aa0d86548b288e664ca6ec1fc307d9ed6314906d88a53724ea8f66a50de3f
4
- data.tar.gz: 3194829083c71babcf27d4a7a9faa8c7461af0e8e4eec75a49450051c934b0fe
3
+ metadata.gz: e64c3474f2ea542d27a5fa1ab387eb8f2e7a0062b5c7b44150a6cc6fa893f7b1
4
+ data.tar.gz: 051aa376be6287c1f9de6af10b367f371c5b2598971178d9b2c6f8e8825e8e3a
5
5
  SHA512:
6
- metadata.gz: 3a883fdf468c545b4d40ff7df480ec31dd18bb13b418a241d31cd85614fc73330a6f9d27c28d4335d4448eb1b8ef12e3c68e4b007f90c6fdadf721e5b6fc7d17
7
- data.tar.gz: ca891f35bf16367d8aec94e021db54c684aeea578eebe31458feb81a90831caad1f11efb4077889fc4ce4c8f228b55c8b0b4808b8fc5a83992f32e1ccf09e70f
6
+ metadata.gz: e4a06791919ae10552641fbd2d75dd065b54aa3245ecf6d7f58fc3017d39b17eeac981466262d4d4e2050996b929cabe28844f83fab11f4e85a445758d0b1b59
7
+ data.tar.gz: 345f064a775dbbad68863973ba056eea89dc6b524c11669ca9bf5727a2267538a64faf702545d80674ea2d5236c27a1877964dcd52bf51e03a8150943a528da0
@@ -1,3 +1,3 @@
1
1
  {
2
- ".": "0.6.0"
2
+ ".": "1.1.0"
3
3
  }
data/CHANGELOG.md CHANGED
@@ -1,5 +1,24 @@
1
1
  # Changelog
2
2
 
3
+ ## [1.1.0](https://github.com/anakinj/jwt-aws-kms/compare/v1.0.0...v1.1.0) (2024-09-28)
4
+
5
+
6
+ ### Features
7
+
8
+ * Allow replacing default algorithms with AWS KMS versions ([#7](https://github.com/anakinj/jwt-aws-kms/issues/7)) ([d6cfe4f](https://github.com/anakinj/jwt-aws-kms/commit/d6cfe4f9bb0ec23daaee771e8692a4410aef393e))
9
+
10
+ ## [1.0.0](https://github.com/anakinj/jwt-aws-kms/compare/v0.6.0...v1.0.0) (2024-09-28)
11
+
12
+
13
+ ### ⚠ BREAKING CHANGES
14
+
15
+ * HMAC and asymmetric algorithm (RSA) support ([#5](https://github.com/anakinj/jwt-aws-kms/issues/5))
16
+
17
+ ### Features
18
+
19
+ * HMAC and asymmetric algorithm (RSA) support ([#5](https://github.com/anakinj/jwt-aws-kms/issues/5)) ([9bf2d28](https://github.com/anakinj/jwt-aws-kms/commit/9bf2d2819a5b72698d9bbf6726e6f0e818a0486a))
20
+ * RSA algo support ([0ca6880](https://github.com/anakinj/jwt-aws-kms/commit/0ca688085fae512080a1443bcd4ed20824141e98))
21
+
3
22
  ## [0.2.0](https://github.com/anakinj/jwt-kms/compare/v0.1.0...v0.2.0) (2024-09-20)
4
23
 
5
24
 
data/README.md CHANGED
@@ -1,4 +1,4 @@
1
- # JWT::KMS
1
+ # JWT::Aws::KMS
2
2
 
3
3
  AWS KMS algorithm extensions for ruby-jwt.
4
4
 
@@ -15,9 +15,25 @@ And require the gem in your code.
15
15
  ```ruby
16
16
  require `jwt-aws-kms`
17
17
  ```
18
+ ## Supported algorithms
19
+
20
+ The gem supports the following AWS KMS algorithms:
21
+
22
+ | Algorithm Name | Description | JWA Name |
23
+ |----------------|--------------------------------------------------|-------------------------|
24
+ | RSASSA_PKCS1_V1_5_SHA_256 | RSASSA PKCS1 v1.5 using SHA-256 | RS256 |
25
+ | RSASSA_PKCS1_V1_5_SHA_384 | RSASSA PKCS1 v1.5 using SHA-384 | RS384 |
26
+ | RSASSA_PKCS1_V1_5_SHA_512 | RSASSA PKCS1 v1.5 using SHA-512 | RS512 |
27
+ | RSASSA_PSS_SHA_256 | RSASSA PSS using SHA-256 | PS256 |
28
+ | RSASSA_PSS_SHA_384 | RSASSA PSS using SHA-384 | PS384 |
29
+ | RSASSA_PSS_SHA_512 | RSASSA PSS using SHA-512 | PS512 |
30
+ | ECDSA_SHA_256 | ECDSA using P-256 and SHA-256 | ES256 |
31
+ | ECDSA_SHA_384 | ECDSA using P-384 and SHA-384 | ES384 |
32
+ | ECDSA_SHA_512 | ECDSA using P-521 and SHA-512 | ES512 |
18
33
 
19
34
  ## Usage
20
35
 
36
+ ### Basic usage
21
37
  ```ruby
22
38
 
23
39
  # Create a key, for example with the ruby AWS SDK
@@ -28,6 +44,15 @@ algo = ::JWT::Aws::KMS.for(algorithm: "HS512")
28
44
  token = JWT.encode(payload, key.key_metadata.key_id, algo)
29
45
  decoded_token = JWT.decode(token, key.key_metadata.key_id, true, algorithm: algo)
30
46
  ```
47
+ ### Replace default algorithms
48
+
49
+ You can swap the default algorithms in the JWT gem to AWS backed ones by calling `::JWT::Aws::KMS.replace_defaults!`.
50
+
51
+ ```ruby
52
+ ::JWT::Aws::KMS.replace_defaults! # Called in a initializer of some kind
53
+
54
+ token = JWT.encode(payload, "e25c502b-a383-44ac-a778-0d97e8688cb7", "HS512") # Encode payload with KMS key e25c502b-a383-44ac-a778-0d97e8688cb7
55
+ ```
31
56
 
32
57
  ## Development
33
58
 
@@ -3,7 +3,7 @@
3
3
  module JWT
4
4
  module Aws
5
5
  module KMS
6
- VERSION = "0.6.0"
6
+ VERSION = "1.1.0"
7
7
  end
8
8
  end
9
9
  end
data/lib/jwt/aws/kms.rb CHANGED
@@ -25,6 +25,14 @@ module JWT
25
25
  raise ArgumentError, "Algorithm #{algorithm} not supported"
26
26
  end.new(algorithm: algorithm)
27
27
  end
28
+
29
+ def self.replace_defaults!
30
+ [HmacKey, SignVerifyKey].each do |type|
31
+ type::MAPPINGS.each_key do |algorithm|
32
+ type.register_algorithm(type.new(algorithm: algorithm))
33
+ end
34
+ end
35
+ end
28
36
  end
29
37
  end
30
38
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: jwt-aws-kms
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.6.0
4
+ version: 1.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Joakim Antman
@@ -66,7 +66,7 @@ metadata:
66
66
  allowed_push_host: https://rubygems.org
67
67
  homepage_uri: https://github.com/anakinj/jwt-aws-kms
68
68
  source_code_uri: https://github.com/anakinj/jwt-aws-kms
69
- changelog_uri: https://github.com/anakinj/jwt-aws-kms/blob/v0.6.0/CHANGELOG.md
69
+ changelog_uri: https://github.com/anakinj/jwt-aws-kms/blob/v1.1.0/CHANGELOG.md
70
70
  rubygems_mfa_required: 'true'
71
71
  post_install_message:
72
72
  rdoc_options: []