porky_lib 0.1.2 → 0.1.3

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
  SHA1:
3
- metadata.gz: 122bad0bf114af2bb03c6aa0373fc443dfe3d9c4
4
- data.tar.gz: 7f0b09d966c20ba1c223323b8203461f0ca34d5c
3
+ metadata.gz: 2675129b5aa929103186c7796bdfe281b0ef2a09
4
+ data.tar.gz: 9bd6c825abbc86642d2f5af19a9ffb6314ee4253
5
5
  SHA512:
6
- metadata.gz: 5ad09fc08eb7c6fb8637a29b4805b2fa58ef71716abbad1067ef135b2782737f61ff039988eb7f7dafb647fe3aea76795e96a406bdbab9e0e1bfa56b5259087e
7
- data.tar.gz: 59bdd3b28bb1d8c24c889749924e4f035971a67427cc3507b7705339b64c5a812218eafcc4ec4a459b2ea62df6d17ebd8311d16ef0eb234915c29dc62eeaf259
6
+ metadata.gz: a2ea748669c5c85d6f274dc15d44cc480dd30edae56f149a3de56f8bc99b4ef4a9eb15535bb6d5d8d78c3bebb094d0aea0caeb4fe8f998536b1c0311d2516c91
7
+ data.tar.gz: 43dd122bfbbc7a74c42ad744884c46e6c84d68ed4ec03dff00fc8934cb9c924712e06aa97b3a31eced234b7f11c87a23d6601465ae518483df781d9803f71cb0
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- porky_lib (0.1.2)
4
+ porky_lib (0.1.3)
5
5
  aws-sdk-kms
6
6
  msgpack
7
7
  rbnacl-libsodium
data/README.md CHANGED
@@ -106,7 +106,14 @@ plaintext_key = PorkyLib::Symmetric.instance.generate_data_encryption_key(cipher
106
106
  To securely delete the plaintext key from memory:
107
107
  ```ruby
108
108
  # Where length is the number of bytes of the plaintext key (i.e. plaintext_key.bytesize)
109
- plaintext_key = PorkyLib::Symmetric.instance.secure_delete_plaintext_key(plaintext_key.bytesize)
109
+ plaintext_key.replace(PorkyLib::Symmetric.instance.secure_delete_plaintext_key(plaintext_key.bytesize))
110
+ ```
111
+
112
+ ### Check If An Alias Exists
113
+ To verify whether an alias exists or not:
114
+ ```ruby
115
+ # Where key_alias is the alias name to verify
116
+ alias_exists = PorkyLib::Symmetric.instance.cmk_alias_exists?(key_alias)
110
117
  ```
111
118
 
112
119
  ## Development
@@ -41,6 +41,23 @@ class Aws::KMS::Client
41
41
  raise Aws::KMS::Errors::NotFoundException.new(nil, nil) if target_key_id.include?(MOCK_NOT_FOUND_KEY_ID)
42
42
  end
43
43
 
44
+ def list_aliases
45
+ {
46
+ aliases: [
47
+ {
48
+ alias_arn: 'arn:aws:kms:us-east-2:111122223333:alias/example1',
49
+ alias_name: 'alias/example1',
50
+ target_key_id: "4da1e216-62d0-46c5-a7c0-5f3a3d2f8046"
51
+ },
52
+ {
53
+ alias_arn: 'arn:aws:kms:us-east-2:444455556666:alias/new_key',
54
+ alias_name: 'alias/new_key',
55
+ target_key_id: "4da1e216-62d0-46c5-a7c0-5f3a3d2f8046"
56
+ }
57
+ ]
58
+ }
59
+ end
60
+
44
61
  def generate_data_key(key_id:, key_spec:, encryption_context: nil)
45
62
  raise Aws::KMS::Errors::InvalidKeyUsageException.new(nil, nil) unless key_spec == 'AES_256'
46
63
  raise Aws::KMS::Errors::NotFoundException.new(nil, nil) if key_id.include?(MOCK_NOT_FOUND_KEY_ID)
@@ -30,6 +30,15 @@ class PorkyLib::Symmetric
30
30
  key_id
31
31
  end
32
32
 
33
+ def cmk_alias_exists?(key_alias)
34
+ alias_list = client.list_aliases.to_h[:aliases]
35
+ alias_list.each do |item|
36
+ return true if item[:alias_name] == key_alias
37
+ end
38
+
39
+ false
40
+ end
41
+
33
42
  def enable_key_rotation(key_id)
34
43
  PorkyLib::Config.logger.info("Enabling automatic key rotation for master key: '#{key_id}'")
35
44
  client.enable_key_rotation(key_id: key_id)
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module PorkyLib
4
- VERSION = "0.1.2"
4
+ VERSION = "0.1.3"
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: porky_lib
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.2
4
+ version: 0.1.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Greg Fletcher
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2018-07-24 00:00:00.000000000 Z
11
+ date: 2018-07-30 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler