opensecret 0.0.988 → 0.0.9925

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (62) hide show
  1. checksums.yaml +5 -5
  2. data/README.md +56 -159
  3. data/bin/opensecret +2 -2
  4. data/bin/ops +17 -2
  5. data/lib/extension/string.rb +14 -16
  6. data/lib/{interpreter.rb → interprete.rb} +53 -29
  7. data/lib/keytools/binary.map.rb +49 -0
  8. data/lib/keytools/kdf.api.rb +249 -0
  9. data/lib/keytools/kdf.bcrypt.rb +64 -29
  10. data/lib/keytools/kdf.pbkdf2.rb +92 -83
  11. data/lib/keytools/kdf.scrypt.rb +190 -0
  12. data/lib/keytools/key.64.rb +326 -0
  13. data/lib/keytools/key.algo.rb +109 -0
  14. data/lib/keytools/key.api.rb +1281 -0
  15. data/lib/keytools/key.db.rb +265 -0
  16. data/lib/keytools/{key.module.rb → key.docs.rb} +55 -0
  17. data/lib/keytools/key.error.rb +110 -0
  18. data/lib/keytools/key.id.rb +271 -0
  19. data/lib/keytools/key.iv.rb +107 -0
  20. data/lib/keytools/key.local.rb +265 -0
  21. data/lib/keytools/key.mach.rb +248 -0
  22. data/lib/keytools/key.now.rb +402 -0
  23. data/lib/keytools/key.pair.rb +259 -0
  24. data/lib/keytools/key.pass.rb +120 -0
  25. data/lib/keytools/key.rb +428 -298
  26. data/lib/keytools/keydebug.txt +295 -0
  27. data/lib/logging/gem.logging.rb +3 -3
  28. data/lib/modules/cryptology/collect.rb +20 -0
  29. data/lib/session/require.gem.rb +1 -1
  30. data/lib/usecase/cmd.rb +417 -0
  31. data/lib/usecase/id.rb +36 -0
  32. data/lib/usecase/import.rb +174 -0
  33. data/lib/usecase/init.rb +78 -0
  34. data/lib/usecase/login.rb +70 -0
  35. data/lib/usecase/logout.rb +30 -0
  36. data/lib/usecase/open.rb +126 -0
  37. data/lib/{interprete → usecase}/put.rb +100 -47
  38. data/lib/usecase/read.rb +89 -0
  39. data/lib/{interprete → usecase}/safe.rb +0 -0
  40. data/lib/{interprete → usecase}/set.rb +0 -0
  41. data/lib/usecase/token.rb +111 -0
  42. data/lib/{interprete → usecase}/use.rb +0 -0
  43. data/lib/version.rb +1 -1
  44. data/opensecret.gemspec +4 -3
  45. metadata +39 -33
  46. data/lib/exception/cli.error.rb +0 -53
  47. data/lib/exception/errors/cli.errors.rb +0 -31
  48. data/lib/interprete/begin.rb +0 -232
  49. data/lib/interprete/cmd.rb +0 -621
  50. data/lib/interprete/export.rb +0 -163
  51. data/lib/interprete/init.rb +0 -205
  52. data/lib/interprete/key.rb +0 -119
  53. data/lib/interprete/open.rb +0 -148
  54. data/lib/interprete/seal.rb +0 -129
  55. data/lib/keytools/digester.rb +0 -245
  56. data/lib/keytools/key.data.rb +0 -227
  57. data/lib/keytools/key.derivation.rb +0 -341
  58. data/lib/modules/mappers/collateral.rb +0 -282
  59. data/lib/modules/mappers/envelope.rb +0 -127
  60. data/lib/modules/mappers/settings.rb +0 -170
  61. data/lib/notepad/scratch.pad.rb +0 -224
  62. data/lib/store-commands.txt +0 -180
@@ -0,0 +1,295 @@
1
+
2
+ #### ###################### ####
3
+ #### Waiting for Gre Output ####
4
+ #### ###################### ####
5
+
6
+
7
+ Commands
8
+
9
+ grep -E "do_encrypt_key|do_decrypt_key|generate_shell_key_and_token|regenerate_shell_key|derive_session_crypt_key|derive_shell_identity_string" *.log
10
+
11
+
12
+ I, [2018-06-20T07:16:31.020725 #27357] INFO -- key.local | generate_shell_key_and_token | (line 81) : "### #####################################################################"
13
+ I, [2018-06-20T07:16:31.020761 #27357] INFO -- key.local | generate_shell_key_and_token | (line 82) : "### Caller Details =>> =>> key | execute | (line 83)"
14
+ I, [2018-06-20T07:16:31.020799 #27357] INFO -- key.local | generate_shell_key_and_token | (line 83) : "### #####################################################################"
15
+ I, [2018-06-20T07:16:31.024921 #27357] INFO -- key.mach | derive_shell_identity_string | (line 85) : "### #####################################################################"
16
+ I, [2018-06-20T07:16:31.024971 #27357] INFO -- key.mach | derive_shell_identity_string | (line 86) : "### Caller Details =>> =>> key.local | derive_session_crypt_key | (line 232)"
17
+ I, [2018-06-20T07:16:31.025008 #27357] INFO -- key.mach | derive_shell_identity_string | (line 87) : "### #####################################################################"
18
+ I, [2018-06-20T07:16:31.025388 #27357] INFO -- key.mach | derive_shell_identity_string | (line 90) : "Etc.getlogin() => apollo"
19
+ I, [2018-06-20T07:16:31.025438 #27357] INFO -- key.mach | derive_shell_identity_string | (line 91) : "Socket.gethostname() => warehouse"
20
+ I, [2018-06-20T07:16:31.025920 #27357] INFO -- key.mach | derive_shell_identity_string | (line 92) : "get_net_address_digits() => 192168014"
21
+ I, [2018-06-20T07:16:31.031573 #27357] INFO -- key.mach | derive_shell_identity_string | (line 93) : "derive_network_identity() => 20cf3067dec3"
22
+ I, [2018-06-20T07:16:31.034135 #27357] INFO -- key.mach | derive_shell_identity_string | (line 94) : "get_bootup_time_digits() => 20000556"
23
+ I, [2018-06-20T07:16:31.034229 #27357] INFO -- key.mach | derive_shell_identity_string | (line 95) : "Process.ppid.to_s() => 26314"
24
+ I, [2018-06-20T07:16:31.037052 #27357] INFO -- key.local | derive_session_crypt_key | (line 237) : "Shell Identity Str => 41362555000023ced7603fc02410861291esuoherawollopa"
25
+ I, [2018-06-20T07:16:31.037138 #27357] INFO -- key.local | derive_session_crypt_key | (line 238) : "Shell Id TxtLength => 49"
26
+ I, [2018-06-20T07:16:31.037186 #27357] INFO -- key.local | derive_session_crypt_key | (line 239) : "Truncate Shell Str => false"
27
+ I, [2018-06-20T07:16:31.037222 #27357] INFO -- key.local | derive_session_crypt_key | (line 240) : "Resulting IDString => 41362555000023ced7603fc02410861291esuoherawollopa"
28
+ I, [2018-06-20T07:16:35.230008 #27357] INFO -- key | do_encrypt_key | (line 410) : "### #####################################################################"
29
+ I, [2018-06-20T07:16:35.230094 #27357] INFO -- key | do_encrypt_key | (line 411) : "### Caller Details =>> =>> key.local | generate_shell_key_and_token | (line 88)"
30
+ I, [2018-06-20T07:16:35.230135 #27357] INFO -- key | do_encrypt_key | (line 412) : "### #####################################################################"
31
+ I, [2018-06-20T07:16:35.230175 #27357] INFO -- key | do_encrypt_key | (line 413) : "The BitStr Char representation of this key => 011000011010001100100111011100011001011010011001110010100010101000000110011101011011011010010101110001001111000100110001011111110101101010101101011101101111100011101001010100000101"
32
+ I, [2018-06-20T07:16:35.230232 #27357] INFO -- key | do_encrypt_key | (line 414) : "256bit Digest (Urlsafe Base64) of this key => hQvwy9Sm2PHSJ6AuDtl4dhOF1gKfR1ydKcNelRZzYu0="
33
+ I, [2018-06-20T07:16:35.230323 #27357] INFO -- key | do_encrypt_key | (line 415) : "The IncomingKey Base64 Char representation => isbrxRc4eGC6gZjDfxT2sxkK4OHPvd6LR4Zar6ssZOA@NDxaM2ZzFxi7fDDa7xUh"
34
+ I, [2018-06-20T07:16:35.230369 #27357] INFO -- key | do_encrypt_key | (line 416) : "Random IV Used for the AESs Key Encryption => Ly28cDkZ-wyEKMhXqy9Zrg=="
35
+ I, [2018-06-20T07:16:35.230488 #27357] INFO -- key | do_encrypt_key | (line 419) : "Cipher Text Produced after this Encryption => l_-BzmA3ZKVbZMpinEUlEWkHc20o8CErtrm24RwNubNXnC_hRunGQYUgPsC0WVUyBbVYIuO9W-_fL_EHgnUngRsALCvlz1xSBmH3Ab68qUI="
36
+ I, [2018-06-20T07:16:35.230628 #27357] INFO -- key | do_encrypt_key | (line 425) : "Amalgam of Binary Random IV and Ciphertext => 57UDSB@NPq7f1cRgu7xNmjbiVSCVnUlZoU61kjdKsAKj9Xnh1JaR1QtCh4fSBY8vwCqprIYjd@OK3BQahKZwcVo2oW50pwppX7id9rs2srfYaWqmCSxSIVNRxqOPp1ZW"
37
+ I, [2018-06-20T07:16:35.230671 #27357] INFO -- key | do_encrypt_key | (line 426) : "------------------------------------------------------------------------- >>>>>>"
38
+ I, [2018-06-20T07:16:35.230718 #27357] INFO -- key.local | generate_shell_key_and_token | (line 92) : "BCrypt Salt Create => mqM3yu.Bin.H.nh4l3cwoO"
39
+ I, [2018-06-20T07:16:35.230756 #27357] INFO -- key.local | generate_shell_key_and_token | (line 93) : "Obfuscate ShellKey => 011000011010001100100111011100011001011010011001110010100010101000000110011101011011011010010101110001001111000100110001011111110101101010101101011101101111100011101001010100000101"
40
+ I, [2018-06-20T07:16:35.230797 #27357] INFO -- key.local | generate_shell_key_and_token | (line 94) : "EncryptedKey Crypt => 57UDSB@NPq7f1cRgu7xNmjbiVSCVnUlZoU61kjdKsAKj9Xnh1JaR1QtCh4fSBY8vwCqprIYjd@OK3BQahKZwcVo2oW50pwppX7id9rs2srfYaWqmCSxSIVNRxqOPp1ZW"
41
+ I, [2018-06-20T07:16:35.230833 #27357] INFO -- key.local | generate_shell_key_and_token | (line 95) : "Session Token Unit => 57UDSB@NPq7f1cRgu7xNmjbiVSCVnUlZoU61kjdKsAKj9Xnh1JaR1QtCh4fSBY8vwCqprIYjd@OK3BQahKZwcVo2oW50pwppX7id9rs2srfYaWqmCSxSIVNRxqOPp1ZWOowc3l4hn.H.niB.uy3Mqm"
42
+ I, [2018-06-20T07:17:05.853753 #27607] INFO -- key | do_encrypt_key | (line 410) : "### #####################################################################"
43
+ I, [2018-06-20T07:17:05.853850 #27607] INFO -- key | do_encrypt_key | (line 411) : "### Caller Details =>> =>> key.api | recycle_keys | (line 310)"
44
+ I, [2018-06-20T07:17:05.853891 #27607] INFO -- key | do_encrypt_key | (line 412) : "### #####################################################################"
45
+ I, [2018-06-20T07:17:05.853929 #27607] INFO -- key | do_encrypt_key | (line 413) : "The BitStr Char representation of this key => 00001010011110001010010001101010011111110011010000100110100111110001010010000111101001000000110101000000001001011001111001001000010001110011101111101100110101100000111100111011010111111101110000101010111011001000011011101011000111000011000101001011100101100111011010101000111110101011111110010000100001010100011110100101101110100101001000000110111100010101101101000110100110010100010001101110001100110000100110000111011000000111110011011000110101011111110111010010111110001100011001101001101001010011010011011101"
46
+ I, [2018-06-20T07:17:05.853985 #27607] INFO -- key | do_encrypt_key | (line 414) : "256bit Digest (Urlsafe Base64) of this key => -RYLRFsfr92eq_K_w5FeAUTwgsQLIcZIk2mxCmhoFyM="
47
+ I, [2018-06-20T07:17:05.854076 #27607] INFO -- key | do_encrypt_key | (line 415) : "The IncomingKey Base64 Char representation => CVcyceOj3UZSkP6g@ZyilcKL9jLjy0Bn9EWyQiYYGyarBwr2f7%Qg6AgpqhiJ14Q"
48
+ I, [2018-06-20T07:17:05.854128 #27607] INFO -- key | do_encrypt_key | (line 416) : "Random IV Used for the AESs Key Encryption => zTEt2_SF3ZszGGcgu8zlsA=="
49
+ I, [2018-06-20T07:17:05.854268 #27607] INFO -- key | do_encrypt_key | (line 419) : "Cipher Text Produced after this Encryption => 7GhAsfOQyTI6NZcr3Acq94emTV7m9P-zIG4Rw_KXz66bgPHF_AsDuEiK-ZAt0gQylUSAFzHo-BR1bW8PVNWOaHbsB_HjNzOc934zJtTZLRM="
50
+ I, [2018-06-20T07:17:05.854387 #27607] INFO -- key | do_encrypt_key | (line 425) : "Amalgam of Binary Random IV and Ciphertext => v6fhUilKXNMvOOSV4DvZMEdGL5zv@c@7E0og1xqz1pTzj@2TCp6iM794fSJ7ZDP48rBddbq5aQR3Hp8L5%3fcjwfV9SdyJVI%o2pB26w08RUQabdrvSvFJ%Pc7YIUle6"
51
+ I, [2018-06-20T07:17:05.854427 #27607] INFO -- key | do_encrypt_key | (line 426) : "------------------------------------------------------------------------- >>>>>>"
52
+ I, [2018-06-20T07:17:45.388202 #27923] INFO -- key | do_decrypt_key | (line 476) : "### #####################################################################"
53
+ I, [2018-06-20T07:17:45.388284 #27923] INFO -- key | do_decrypt_key | (line 477) : "### Caller Details =>> =>> key.api | do_login | (line 443)"
54
+ I, [2018-06-20T07:17:45.388323 #27923] INFO -- key | do_decrypt_key | (line 478) : "### #####################################################################"
55
+ I, [2018-06-20T07:17:45.388360 #27923] INFO -- key | do_decrypt_key | (line 479) : "Amalgam of Binary Random IV and Ciphertext => v6fhUilKXNMvOOSV4DvZMEdGL5zv@c@7E0og1xqz1pTzj@2TCp6iM794fSJ7ZDP48rBddbq5aQR3Hp8L5%3fcjwfV9SdyJVI%o2pB26w08RUQabdrvSvFJ%Pc7YIUle6"
56
+ I, [2018-06-20T07:17:45.388397 #27923] INFO -- key | do_decrypt_key | (line 480) : "The Base64 Char representation of this key => 00001010011110001010010001101010011111110011010000100110100111110001010010000111101001000000110101000000001001011001111001001000010001110011101111101100110101100000111100111011010111111101110000101010111011001000011011101011000111000011000101001011100101100111011010101000111110101011111110010000100001010100011110100101101110100101001000000110111100010101101101000110100110010100010001101110001100110000100110000111011000000111110011011000110101011111110111010010111110001100011001101001101001010011010011011101"
57
+ I, [2018-06-20T07:17:45.388461 #27923] INFO -- key | do_decrypt_key | (line 481) : "256bit Digest (Urlsafe Base64) of this key => -RYLRFsfr92eq_K_w5FeAUTwgsQLIcZIk2mxCmhoFyM="
58
+ I, [2018-06-20T07:17:45.388917 #27923] INFO -- key | do_decrypt_key | (line 496) : "The OutgoingKey Base64 Char representation => CVcyceOj3UZSkP6g@ZyilcKL9jLjy0Bn9EWyQiYYGyarBwr2f7%Qg6AgpqhiJ14Q"
59
+ I, [2018-06-20T07:17:51.050189 #27923] INFO -- key | do_encrypt_key | (line 410) : "### #####################################################################"
60
+ I, [2018-06-20T07:17:51.050278 #27923] INFO -- key | do_encrypt_key | (line 411) : "### Caller Details =>> =>> key.api | recycle_keys | (line 310)"
61
+ I, [2018-06-20T07:17:51.050317 #27923] INFO -- key | do_encrypt_key | (line 412) : "### #####################################################################"
62
+ I, [2018-06-20T07:17:51.050358 #27923] INFO -- key | do_encrypt_key | (line 413) : "The BitStr Char representation of this key => 10010111000101110100110011110111101101100011010001111100110000110001000000011111011001111101100110110100000000000000101110111010001101001000000100100001011100111011001111111100000110100100111001101011111111101100000100111101100111100100011011100111000100010111111100111010011001111001011101001011001111010100101111100011001110000110111011001000111011110000000011100100111001011000110011100111100110101110110110001011111110011110101000001011000010010100011011010101000100101110111001110101101111001011111110101010"
63
+ I, [2018-06-20T07:17:51.050413 #27923] INFO -- key | do_encrypt_key | (line 414) : "256bit Digest (Urlsafe Base64) of this key => lvHyYL3wa4o-AW8zKcUHJXfOdQpk-zvbSBUKiFY2BqY="
64
+ I, [2018-06-20T07:17:51.050505 #27923] INFO -- key | do_encrypt_key | (line 415) : "The IncomingKey Base64 Char representation => L81G0yQKLWFRTMq5Bi%5sTHzKZi5aVfYozcgHsQPH%foRvfX899ruybvzrmVN5tB"
65
+ I, [2018-06-20T07:17:51.050553 #27923] INFO -- key | do_encrypt_key | (line 416) : "Random IV Used for the AESs Key Encryption => 2ZyunX6ee_rr936fN1smCw=="
66
+ I, [2018-06-20T07:17:51.050654 #27923] INFO -- key | do_encrypt_key | (line 419) : "Cipher Text Produced after this Encryption => -gCsGq-FFKJpSk7go1K3WZHsFToOzuGHEAwA-DJ7NBzE8k4w5NEIUBm_njyO6pRajp7cgtwodDUMVV-U5wMvaKqA8OB8yl0lOFxJih1-Wgs="
67
+ I, [2018-06-20T07:17:51.050798 #27923] INFO -- key | do_encrypt_key | (line 425) : "Amalgam of Binary Random IV and Ciphertext => UN74FgyTTimmxXybn2M8WiGam9upRAlHtIjEr1nlh28AQ9IyBMQRRdacaJV7TvLSdJsEcE6AWKaNpCrD04uIoGyTX35S1zL2BKwbZESB5UHuVJBVbcj%s6RSlkG%bZG5"
68
+ I, [2018-06-20T07:17:51.050839 #27923] INFO -- key | do_encrypt_key | (line 426) : "------------------------------------------------------------------------- >>>>>>"
69
+ I, [2018-06-20T07:17:51.051712 #27923] INFO -- key.local | regenerate_shell_key | (line 157) : "### #####################################################################"
70
+ I, [2018-06-20T07:17:51.051756 #27923] INFO -- key.local | regenerate_shell_key | (line 158) : "### Caller Details =>> =>> key.api | do_login | (line 472)"
71
+ I, [2018-06-20T07:17:51.051792 #27923] INFO -- key.local | regenerate_shell_key | (line 159) : "### #####################################################################"
72
+ I, [2018-06-20T07:17:51.051969 #27923] INFO -- key.mach | derive_shell_identity_string | (line 85) : "### #####################################################################"
73
+ I, [2018-06-20T07:17:51.052009 #27923] INFO -- key.mach | derive_shell_identity_string | (line 86) : "### Caller Details =>> =>> key.local | derive_session_crypt_key | (line 232)"
74
+ I, [2018-06-20T07:17:51.052045 #27923] INFO -- key.mach | derive_shell_identity_string | (line 87) : "### #####################################################################"
75
+ I, [2018-06-20T07:17:51.052128 #27923] INFO -- key.mach | derive_shell_identity_string | (line 90) : "Etc.getlogin() => apollo"
76
+ I, [2018-06-20T07:17:51.052178 #27923] INFO -- key.mach | derive_shell_identity_string | (line 91) : "Socket.gethostname() => warehouse"
77
+ I, [2018-06-20T07:17:51.052624 #27923] INFO -- key.mach | derive_shell_identity_string | (line 92) : "get_net_address_digits() => 192168014"
78
+ I, [2018-06-20T07:17:51.052794 #27923] INFO -- key.mach | derive_shell_identity_string | (line 93) : "derive_network_identity() => 20cf3067dec3"
79
+ I, [2018-06-20T07:17:51.054430 #27923] INFO -- key.mach | derive_shell_identity_string | (line 94) : "get_bootup_time_digits() => 20000556"
80
+ I, [2018-06-20T07:17:51.054517 #27923] INFO -- key.mach | derive_shell_identity_string | (line 95) : "Process.ppid.to_s() => 26314"
81
+ I, [2018-06-20T07:17:51.078095 #27923] INFO -- key.local | derive_session_crypt_key | (line 237) : "Shell Identity Str => 41362555000023ced7603fc02410861291esuoherawollopa"
82
+ I, [2018-06-20T07:17:51.078194 #27923] INFO -- key.local | derive_session_crypt_key | (line 238) : "Shell Id TxtLength => 49"
83
+ I, [2018-06-20T07:17:51.078232 #27923] INFO -- key.local | derive_session_crypt_key | (line 239) : "Truncate Shell Str => false"
84
+ I, [2018-06-20T07:17:51.078268 #27923] INFO -- key.local | derive_session_crypt_key | (line 240) : "Resulting IDString => 41362555000023ced7603fc02410861291esuoherawollopa"
85
+ I, [2018-06-20T07:17:55.317529 #27923] INFO -- key.local | regenerate_shell_key | (line 169) : "BCrypt Salt REGEND => mqM3yu.Bin.H.nh4l3cwoO"
86
+ I, [2018-06-20T07:17:55.317603 #27923] INFO -- key.local | regenerate_shell_key | (line 170) : "SessionToken REGEN => 57UDSB@NPq7f1cRgu7xNmjbiVSCVnUlZoU61kjdKsAKj9Xnh1JaR1QtCh4fSBY8vwCqprIYjd@OK3BQahKZwcVo2oW50pwppX7id9rs2srfYaWqmCSxSIVNRxqOPp1ZWOowc3l4hn.H.niB.uy3Mqm"
87
+ I, [2018-06-20T07:17:55.317642 #27923] INFO -- key.local | regenerate_shell_key | (line 171) : "Chopped Ciphertext => 57UDSB@NPq7f1cRgu7xNmjbiVSCVnUlZoU61kjdKsAKj9Xnh1JaR1QtCh4fSBY8vwCqprIYjd@OK3BQahKZwcVo2oW50pwppX7id9rs2srfYaWqmCSxSIVNRxqOPp1ZW"
88
+ I, [2018-06-20T07:17:55.317680 #27923] INFO -- key.local | regenerate_shell_key | (line 172) : "Obfuscate ShellKey => 011000011010001100100111011100011001011010011001110010100010101000000110011101011011011010010101110001001111000100110001011111110101101010101101011101101111100011101001010100000101"
89
+ I, [2018-06-20T07:17:55.317722 #27923] INFO -- key | do_decrypt_key | (line 476) : "### #####################################################################"
90
+ I, [2018-06-20T07:17:55.317765 #27923] INFO -- key | do_decrypt_key | (line 477) : "### Caller Details =>> =>> key.local | regenerate_shell_key | (line 174)"
91
+ I, [2018-06-20T07:17:55.317801 #27923] INFO -- key | do_decrypt_key | (line 478) : "### #####################################################################"
92
+ I, [2018-06-20T07:17:55.317837 #27923] INFO -- key | do_decrypt_key | (line 479) : "Amalgam of Binary Random IV and Ciphertext => 57UDSB@NPq7f1cRgu7xNmjbiVSCVnUlZoU61kjdKsAKj9Xnh1JaR1QtCh4fSBY8vwCqprIYjd@OK3BQahKZwcVo2oW50pwppX7id9rs2srfYaWqmCSxSIVNRxqOPp1ZW"
93
+ I, [2018-06-20T07:17:55.317873 #27923] INFO -- key | do_decrypt_key | (line 480) : "The Base64 Char representation of this key => 011000011010001100100111011100011001011010011001110010100010101000000110011101011011011010010101110001001111000100110001011111110101101010101101011101101111100011101001010100000101"
94
+ I, [2018-06-20T07:17:55.317929 #27923] INFO -- key | do_decrypt_key | (line 481) : "256bit Digest (Urlsafe Base64) of this key => hQvwy9Sm2PHSJ6AuDtl4dhOF1gKfR1ydKcNelRZzYu0="
95
+ I, [2018-06-20T07:17:55.318393 #27923] INFO -- key | do_decrypt_key | (line 496) : "The OutgoingKey Base64 Char representation => isbrxRc4eGC6gZjDfxT2sxkK4OHPvd6LR4Zar6ssZOA@NDxaM2ZzFxi7fDDa7xUh"
96
+ I, [2018-06-20T07:17:55.318706 #27923] INFO -- key | do_encrypt_key | (line 410) : "### #####################################################################"
97
+ I, [2018-06-20T07:17:55.318746 #27923] INFO -- key | do_encrypt_key | (line 411) : "### Caller Details =>> =>> key.api | do_login | (line 473)"
98
+ I, [2018-06-20T07:17:55.318781 #27923] INFO -- key | do_encrypt_key | (line 412) : "### #####################################################################"
99
+ I, [2018-06-20T07:17:55.318819 #27923] INFO -- key | do_encrypt_key | (line 413) : "The BitStr Char representation of this key => 111111001001011111111000111101100001001100101110110100101000111001010011010111100101101001111100000100111101011110110101001001111101011000000101101110000110100010111110110011110001010011010000100001101110100101000000111000010011001001001001100101000110010001100100011001111100111101000000101100110101100101000111100111111101111111110010000100111100111100000000110010111101110110101101"
100
+ I, [2018-06-20T07:17:55.318870 #27923] INFO -- key | do_encrypt_key | (line 414) : "256bit Digest (Urlsafe Base64) of this key => OV2cJi1zcgvh_WJD0xld30i_Ovnhqs3bveNsmI1Z-tM="
101
+ I, [2018-06-20T07:17:55.318993 #27923] INFO -- key | do_encrypt_key | (line 415) : "The IncomingKey Base64 Char representation => L81G0yQKLWFRTMq5Bi%5sTHzKZi5aVfYozcgHsQPH%foRvfX899ruybvzrmVN5tB"
102
+ I, [2018-06-20T07:17:55.319038 #27923] INFO -- key | do_encrypt_key | (line 416) : "Random IV Used for the AESs Key Encryption => UjvUkLdGHxOhuY-7CtT8zw=="
103
+ I, [2018-06-20T07:17:55.319121 #27923] INFO -- key | do_encrypt_key | (line 419) : "Cipher Text Produced after this Encryption => FinrBH6i6nUYR25qql-Tp6RTczQpkvhhPamW2gvS3upAY7CDK3zM4syJIq3S541EKuBpVPexVx02qClN3iKwgcAz9p1wsk0ktEhbR8B6Mls="
104
+ I, [2018-06-20T07:17:55.319239 #27923] INFO -- key | do_encrypt_key | (line 425) : "Amalgam of Binary Random IV and Ciphertext => I0pI@5%OzdER4kPQWh6DvdkjyqAPG4j2Of%4tujb@yT@IXce1N5rk6UjZhG5ehQuLOEqV7hDvE5cHl1he4TnAWmVtw6XMwS%nuVj6%rHM3zacit%S5sns5A3oebaT0sY"
105
+ I, [2018-06-20T07:17:55.319278 #27923] INFO -- key | do_encrypt_key | (line 426) : "------------------------------------------------------------------------- >>>>>>"
106
+ I, [2018-06-20T07:18:47.195554 #29057] INFO -- key.local | regenerate_shell_key | (line 157) : "### #####################################################################"
107
+ I, [2018-06-20T07:18:47.195600 #29057] INFO -- key.local | regenerate_shell_key | (line 158) : "### Caller Details =>> =>> key.api | read_app_content | (line 672)"
108
+ I, [2018-06-20T07:18:47.195638 #29057] INFO -- key.local | regenerate_shell_key | (line 159) : "### #####################################################################"
109
+ I, [2018-06-20T07:18:47.195777 #29057] INFO -- key.mach | derive_shell_identity_string | (line 85) : "### #####################################################################"
110
+ I, [2018-06-20T07:18:47.195817 #29057] INFO -- key.mach | derive_shell_identity_string | (line 86) : "### Caller Details =>> =>> key.local | derive_session_crypt_key | (line 232)"
111
+ I, [2018-06-20T07:18:47.195863 #29057] INFO -- key.mach | derive_shell_identity_string | (line 87) : "### #####################################################################"
112
+ I, [2018-06-20T07:18:47.196201 #29057] INFO -- key.mach | derive_shell_identity_string | (line 90) : "Etc.getlogin() => apollo"
113
+ I, [2018-06-20T07:18:47.196249 #29057] INFO -- key.mach | derive_shell_identity_string | (line 91) : "Socket.gethostname() => warehouse"
114
+ I, [2018-06-20T07:18:47.196725 #29057] INFO -- key.mach | derive_shell_identity_string | (line 92) : "get_net_address_digits() => 192168014"
115
+ I, [2018-06-20T07:18:47.202494 #29057] INFO -- key.mach | derive_shell_identity_string | (line 93) : "derive_network_identity() => 20cf3067dec3"
116
+ I, [2018-06-20T07:18:47.205036 #29057] INFO -- key.mach | derive_shell_identity_string | (line 94) : "get_bootup_time_digits() => 20000556"
117
+ I, [2018-06-20T07:18:47.205133 #29057] INFO -- key.mach | derive_shell_identity_string | (line 95) : "Process.ppid.to_s() => 26314"
118
+ I, [2018-06-20T07:18:47.208112 #29057] INFO -- key.local | derive_session_crypt_key | (line 237) : "Shell Identity Str => 41362555000023ced7603fc02410861291esuoherawollopa"
119
+ I, [2018-06-20T07:18:47.208187 #29057] INFO -- key.local | derive_session_crypt_key | (line 238) : "Shell Id TxtLength => 49"
120
+ I, [2018-06-20T07:18:47.208237 #29057] INFO -- key.local | derive_session_crypt_key | (line 239) : "Truncate Shell Str => false"
121
+ I, [2018-06-20T07:18:47.208281 #29057] INFO -- key.local | derive_session_crypt_key | (line 240) : "Resulting IDString => 41362555000023ced7603fc02410861291esuoherawollopa"
122
+ I, [2018-06-20T07:18:51.466118 #29057] INFO -- key.local | regenerate_shell_key | (line 169) : "BCrypt Salt REGEND => mqM3yu.Bin.H.nh4l3cwoO"
123
+ I, [2018-06-20T07:18:51.466196 #29057] INFO -- key.local | regenerate_shell_key | (line 170) : "SessionToken REGEN => 57UDSB@NPq7f1cRgu7xNmjbiVSCVnUlZoU61kjdKsAKj9Xnh1JaR1QtCh4fSBY8vwCqprIYjd@OK3BQahKZwcVo2oW50pwppX7id9rs2srfYaWqmCSxSIVNRxqOPp1ZWOowc3l4hn.H.niB.uy3Mqm"
124
+ I, [2018-06-20T07:18:51.466235 #29057] INFO -- key.local | regenerate_shell_key | (line 171) : "Chopped Ciphertext => 57UDSB@NPq7f1cRgu7xNmjbiVSCVnUlZoU61kjdKsAKj9Xnh1JaR1QtCh4fSBY8vwCqprIYjd@OK3BQahKZwcVo2oW50pwppX7id9rs2srfYaWqmCSxSIVNRxqOPp1ZW"
125
+ I, [2018-06-20T07:18:51.466271 #29057] INFO -- key.local | regenerate_shell_key | (line 172) : "Obfuscate ShellKey => 011000011010001100100111011100011001011010011001110010100010101000000110011101011011011010010101110001001111000100110001011111110101101010101101011101101111100011101001010100000101"
126
+ I, [2018-06-20T07:18:51.466319 #29057] INFO -- key | do_decrypt_key | (line 476) : "### #####################################################################"
127
+ I, [2018-06-20T07:18:51.466355 #29057] INFO -- key | do_decrypt_key | (line 477) : "### Caller Details =>> =>> key.local | regenerate_shell_key | (line 174)"
128
+ I, [2018-06-20T07:18:51.466404 #29057] INFO -- key | do_decrypt_key | (line 478) : "### #####################################################################"
129
+ I, [2018-06-20T07:18:51.466442 #29057] INFO -- key | do_decrypt_key | (line 479) : "Amalgam of Binary Random IV and Ciphertext => 57UDSB@NPq7f1cRgu7xNmjbiVSCVnUlZoU61kjdKsAKj9Xnh1JaR1QtCh4fSBY8vwCqprIYjd@OK3BQahKZwcVo2oW50pwppX7id9rs2srfYaWqmCSxSIVNRxqOPp1ZW"
130
+ I, [2018-06-20T07:18:51.466483 #29057] INFO -- key | do_decrypt_key | (line 480) : "The Base64 Char representation of this key => 011000011010001100100111011100011001011010011001110010100010101000000110011101011011011010010101110001001111000100110001011111110101101010101101011101101111100011101001010100000101"
131
+ I, [2018-06-20T07:18:51.466554 #29057] INFO -- key | do_decrypt_key | (line 481) : "256bit Digest (Urlsafe Base64) of this key => hQvwy9Sm2PHSJ6AuDtl4dhOF1gKfR1ydKcNelRZzYu0="
132
+ I, [2018-06-20T07:18:51.467178 #29057] INFO -- key | do_decrypt_key | (line 496) : "The OutgoingKey Base64 Char representation => isbrxRc4eGC6gZjDfxT2sxkK4OHPvd6LR4Zar6ssZOA@NDxaM2ZzFxi7fDDa7xUh"
133
+ I, [2018-06-20T07:18:51.491154 #29057] INFO -- key | do_decrypt_key | (line 476) : "### #####################################################################"
134
+ I, [2018-06-20T07:18:51.491221 #29057] INFO -- key | do_decrypt_key | (line 477) : "### Caller Details =>> =>> key.api | read_app_content | (line 681)"
135
+ I, [2018-06-20T07:18:51.491258 #29057] INFO -- key | do_decrypt_key | (line 478) : "### #####################################################################"
136
+ I, [2018-06-20T07:18:51.491295 #29057] INFO -- key | do_decrypt_key | (line 479) : "Amalgam of Binary Random IV and Ciphertext => I0pI@5%OzdER4kPQWh6DvdkjyqAPG4j2Of%4tujb@yT@IXce1N5rk6UjZhG5ehQuLOEqV7hDvE5cHl1he4TnAWmVtw6XMwS%nuVj6%rHM3zacit%S5sns5A3oebaT0sY"
137
+ I, [2018-06-20T07:18:51.491331 #29057] INFO -- key | do_decrypt_key | (line 480) : "The Base64 Char representation of this key => 111111001001011111111000111101100001001100101110110100101000111001010011010111100101101001111100000100111101011110110101001001111101011000000101101110000110100010111110110011110001010011010000100001101110100101000000111000010011001001001001100101000110010001100100011001111100111101000000101100110101100101000111100111111101111111110010000100111100111100000000110010111101110110101101"
138
+ I, [2018-06-20T07:18:51.491382 #29057] INFO -- key | do_decrypt_key | (line 481) : "256bit Digest (Urlsafe Base64) of this key => OV2cJi1zcgvh_WJD0xld30i_Ovnhqs3bveNsmI1Z-tM="
139
+ I, [2018-06-20T07:18:51.491847 #29057] INFO -- key | do_decrypt_key | (line 496) : "The OutgoingKey Base64 Char representation => L81G0yQKLWFRTMq5Bi%5sTHzKZi5aVfYozcgHsQPH%foRvfX899ruybvzrmVN5tB"
140
+ I, [2018-06-20T07:18:51.510750 #29057] INFO -- key.local | regenerate_shell_key | (line 157) : "### #####################################################################"
141
+ I, [2018-06-20T07:18:51.510806 #29057] INFO -- key.local | regenerate_shell_key | (line 158) : "### Caller Details =>> =>> key.api | write_app_content | (line 753)"
142
+ I, [2018-06-20T07:18:51.510844 #29057] INFO -- key.local | regenerate_shell_key | (line 159) : "### #####################################################################"
143
+ I, [2018-06-20T07:18:51.511097 #29057] INFO -- key.mach | derive_shell_identity_string | (line 85) : "### #####################################################################"
144
+ I, [2018-06-20T07:18:51.511138 #29057] INFO -- key.mach | derive_shell_identity_string | (line 86) : "### Caller Details =>> =>> key.local | derive_session_crypt_key | (line 232)"
145
+ I, [2018-06-20T07:18:51.511176 #29057] INFO -- key.mach | derive_shell_identity_string | (line 87) : "### #####################################################################"
146
+ I, [2018-06-20T07:18:51.511265 #29057] INFO -- key.mach | derive_shell_identity_string | (line 90) : "Etc.getlogin() => apollo"
147
+ I, [2018-06-20T07:18:51.511311 #29057] INFO -- key.mach | derive_shell_identity_string | (line 91) : "Socket.gethostname() => warehouse"
148
+ I, [2018-06-20T07:18:51.511757 #29057] INFO -- key.mach | derive_shell_identity_string | (line 92) : "get_net_address_digits() => 192168014"
149
+ I, [2018-06-20T07:18:51.511963 #29057] INFO -- key.mach | derive_shell_identity_string | (line 93) : "derive_network_identity() => 20cf3067dec3"
150
+ I, [2018-06-20T07:18:51.514457 #29057] INFO -- key.mach | derive_shell_identity_string | (line 94) : "get_bootup_time_digits() => 20000556"
151
+ I, [2018-06-20T07:18:51.514538 #29057] INFO -- key.mach | derive_shell_identity_string | (line 95) : "Process.ppid.to_s() => 26314"
152
+ I, [2018-06-20T07:18:51.517561 #29057] INFO -- key.local | derive_session_crypt_key | (line 237) : "Shell Identity Str => 41362555000023ced7603fc02410861291esuoherawollopa"
153
+ I, [2018-06-20T07:18:51.517731 #29057] INFO -- key.local | derive_session_crypt_key | (line 238) : "Shell Id TxtLength => 49"
154
+ I, [2018-06-20T07:18:51.517810 #29057] INFO -- key.local | derive_session_crypt_key | (line 239) : "Truncate Shell Str => false"
155
+ I, [2018-06-20T07:18:51.517876 #29057] INFO -- key.local | derive_session_crypt_key | (line 240) : "Resulting IDString => 41362555000023ced7603fc02410861291esuoherawollopa"
156
+ I, [2018-06-20T07:18:55.697600 #29057] INFO -- key.local | regenerate_shell_key | (line 169) : "BCrypt Salt REGEND => mqM3yu.Bin.H.nh4l3cwoO"
157
+ I, [2018-06-20T07:18:55.697677 #29057] INFO -- key.local | regenerate_shell_key | (line 170) : "SessionToken REGEN => 57UDSB@NPq7f1cRgu7xNmjbiVSCVnUlZoU61kjdKsAKj9Xnh1JaR1QtCh4fSBY8vwCqprIYjd@OK3BQahKZwcVo2oW50pwppX7id9rs2srfYaWqmCSxSIVNRxqOPp1ZWOowc3l4hn.H.niB.uy3Mqm"
158
+ I, [2018-06-20T07:18:55.697718 #29057] INFO -- key.local | regenerate_shell_key | (line 171) : "Chopped Ciphertext => 57UDSB@NPq7f1cRgu7xNmjbiVSCVnUlZoU61kjdKsAKj9Xnh1JaR1QtCh4fSBY8vwCqprIYjd@OK3BQahKZwcVo2oW50pwppX7id9rs2srfYaWqmCSxSIVNRxqOPp1ZW"
159
+ I, [2018-06-20T07:18:55.697757 #29057] INFO -- key.local | regenerate_shell_key | (line 172) : "Obfuscate ShellKey => 011000011010001100100111011100011001011010011001110010100010101000000110011101011011011010010101110001001111000100110001011111110101101010101101011101101111100011101001010100000101"
160
+ I, [2018-06-20T07:18:55.697802 #29057] INFO -- key | do_decrypt_key | (line 476) : "### #####################################################################"
161
+ I, [2018-06-20T07:18:55.697840 #29057] INFO -- key | do_decrypt_key | (line 477) : "### Caller Details =>> =>> key.local | regenerate_shell_key | (line 174)"
162
+ I, [2018-06-20T07:18:55.697877 #29057] INFO -- key | do_decrypt_key | (line 478) : "### #####################################################################"
163
+ I, [2018-06-20T07:18:55.697914 #29057] INFO -- key | do_decrypt_key | (line 479) : "Amalgam of Binary Random IV and Ciphertext => 57UDSB@NPq7f1cRgu7xNmjbiVSCVnUlZoU61kjdKsAKj9Xnh1JaR1QtCh4fSBY8vwCqprIYjd@OK3BQahKZwcVo2oW50pwppX7id9rs2srfYaWqmCSxSIVNRxqOPp1ZW"
164
+ I, [2018-06-20T07:18:55.697952 #29057] INFO -- key | do_decrypt_key | (line 480) : "The Base64 Char representation of this key => 011000011010001100100111011100011001011010011001110010100010101000000110011101011011011010010101110001001111000100110001011111110101101010101101011101101111100011101001010100000101"
165
+ I, [2018-06-20T07:18:55.698009 #29057] INFO -- key | do_decrypt_key | (line 481) : "256bit Digest (Urlsafe Base64) of this key => hQvwy9Sm2PHSJ6AuDtl4dhOF1gKfR1ydKcNelRZzYu0="
166
+ I, [2018-06-20T07:18:55.698542 #29057] INFO -- key | do_decrypt_key | (line 496) : "The OutgoingKey Base64 Char representation => isbrxRc4eGC6gZjDfxT2sxkK4OHPvd6LR4Zar6ssZOA@NDxaM2ZzFxi7fDDa7xUh"
167
+ I, [2018-06-20T07:18:55.703247 #29057] INFO -- key | do_decrypt_key | (line 476) : "### #####################################################################"
168
+ I, [2018-06-20T07:18:55.703292 #29057] INFO -- key | do_decrypt_key | (line 477) : "### Caller Details =>> =>> key.api | write_app_content | (line 762)"
169
+ I, [2018-06-20T07:18:55.703329 #29057] INFO -- key | do_decrypt_key | (line 478) : "### #####################################################################"
170
+ I, [2018-06-20T07:18:55.703365 #29057] INFO -- key | do_decrypt_key | (line 479) : "Amalgam of Binary Random IV and Ciphertext => I0pI@5%OzdER4kPQWh6DvdkjyqAPG4j2Of%4tujb@yT@IXce1N5rk6UjZhG5ehQuLOEqV7hDvE5cHl1he4TnAWmVtw6XMwS%nuVj6%rHM3zacit%S5sns5A3oebaT0sY"
171
+ I, [2018-06-20T07:18:55.703403 #29057] INFO -- key | do_decrypt_key | (line 480) : "The Base64 Char representation of this key => 111111001001011111111000111101100001001100101110110100101000111001010011010111100101101001111100000100111101011110110101001001111101011000000101101110000110100010111110110011110001010011010000100001101110100101000000111000010011001001001001100101000110010001100100011001111100111101000000101100110101100101000111100111111101111111110010000100111100111100000000110010111101110110101101"
172
+ I, [2018-06-20T07:18:55.703451 #29057] INFO -- key | do_decrypt_key | (line 481) : "256bit Digest (Urlsafe Base64) of this key => OV2cJi1zcgvh_WJD0xld30i_Ovnhqs3bveNsmI1Z-tM="
173
+ I, [2018-06-20T07:18:55.703920 #29057] INFO -- key | do_decrypt_key | (line 496) : "The OutgoingKey Base64 Char representation => L81G0yQKLWFRTMq5Bi%5sTHzKZi5aVfYozcgHsQPH%foRvfX899ruybvzrmVN5tB"
174
+ I, [2018-06-20T07:19:49.826189 #29836] INFO -- key.local | regenerate_shell_key | (line 157) : "### #####################################################################"
175
+ I, [2018-06-20T07:19:49.826240 #29836] INFO -- key.local | regenerate_shell_key | (line 158) : "### Caller Details =>> =>> key.api | read_app_content | (line 672)"
176
+ I, [2018-06-20T07:19:49.826288 #29836] INFO -- key.local | regenerate_shell_key | (line 159) : "### #####################################################################"
177
+ I, [2018-06-20T07:19:49.826433 #29836] INFO -- key.mach | derive_shell_identity_string | (line 85) : "### #####################################################################"
178
+ I, [2018-06-20T07:19:49.826487 #29836] INFO -- key.mach | derive_shell_identity_string | (line 86) : "### Caller Details =>> =>> key.local | derive_session_crypt_key | (line 232)"
179
+ I, [2018-06-20T07:19:49.826530 #29836] INFO -- key.mach | derive_shell_identity_string | (line 87) : "### #####################################################################"
180
+ I, [2018-06-20T07:19:49.826871 #29836] INFO -- key.mach | derive_shell_identity_string | (line 90) : "Etc.getlogin() => apollo"
181
+ I, [2018-06-20T07:19:49.826938 #29836] INFO -- key.mach | derive_shell_identity_string | (line 91) : "Socket.gethostname() => warehouse"
182
+ I, [2018-06-20T07:19:49.827437 #29836] INFO -- key.mach | derive_shell_identity_string | (line 92) : "get_net_address_digits() => 192168014"
183
+ I, [2018-06-20T07:19:49.833311 #29836] INFO -- key.mach | derive_shell_identity_string | (line 93) : "derive_network_identity() => 20cf3067dec3"
184
+ I, [2018-06-20T07:19:49.835833 #29836] INFO -- key.mach | derive_shell_identity_string | (line 94) : "get_bootup_time_digits() => 20000555"
185
+ I, [2018-06-20T07:19:49.835924 #29836] INFO -- key.mach | derive_shell_identity_string | (line 95) : "Process.ppid.to_s() => 26314"
186
+ I, [2018-06-20T07:19:49.838730 #29836] INFO -- key.local | derive_session_crypt_key | (line 237) : "Shell Identity Str => 41362555000023ced7603fc02410861291esuoherawollopa"
187
+ I, [2018-06-20T07:19:49.838810 #29836] INFO -- key.local | derive_session_crypt_key | (line 238) : "Shell Id TxtLength => 49"
188
+ I, [2018-06-20T07:19:49.838850 #29836] INFO -- key.local | derive_session_crypt_key | (line 239) : "Truncate Shell Str => false"
189
+ I, [2018-06-20T07:19:49.838889 #29836] INFO -- key.local | derive_session_crypt_key | (line 240) : "Resulting IDString => 41362555000023ced7603fc02410861291esuoherawollopa"
190
+ I, [2018-06-20T07:19:54.110571 #29836] INFO -- key.local | regenerate_shell_key | (line 169) : "BCrypt Salt REGEND => mqM3yu.Bin.H.nh4l3cwoO"
191
+ I, [2018-06-20T07:19:54.110651 #29836] INFO -- key.local | regenerate_shell_key | (line 170) : "SessionToken REGEN => 57UDSB@NPq7f1cRgu7xNmjbiVSCVnUlZoU61kjdKsAKj9Xnh1JaR1QtCh4fSBY8vwCqprIYjd@OK3BQahKZwcVo2oW50pwppX7id9rs2srfYaWqmCSxSIVNRxqOPp1ZWOowc3l4hn.H.niB.uy3Mqm"
192
+ I, [2018-06-20T07:19:54.110690 #29836] INFO -- key.local | regenerate_shell_key | (line 171) : "Chopped Ciphertext => 57UDSB@NPq7f1cRgu7xNmjbiVSCVnUlZoU61kjdKsAKj9Xnh1JaR1QtCh4fSBY8vwCqprIYjd@OK3BQahKZwcVo2oW50pwppX7id9rs2srfYaWqmCSxSIVNRxqOPp1ZW"
193
+ I, [2018-06-20T07:19:54.110727 #29836] INFO -- key.local | regenerate_shell_key | (line 172) : "Obfuscate ShellKey => 011000011010001100100111011100011001011010011001110010100010101000000110011101011011011010010101110001001111000100110001011111110101101010101101011101101111100011101001010100000101"
194
+ I, [2018-06-20T07:19:54.110770 #29836] INFO -- key | do_decrypt_key | (line 476) : "### #####################################################################"
195
+ I, [2018-06-20T07:19:54.110806 #29836] INFO -- key | do_decrypt_key | (line 477) : "### Caller Details =>> =>> key.local | regenerate_shell_key | (line 174)"
196
+ I, [2018-06-20T07:19:54.110846 #29836] INFO -- key | do_decrypt_key | (line 478) : "### #####################################################################"
197
+ I, [2018-06-20T07:19:54.110882 #29836] INFO -- key | do_decrypt_key | (line 479) : "Amalgam of Binary Random IV and Ciphertext => 57UDSB@NPq7f1cRgu7xNmjbiVSCVnUlZoU61kjdKsAKj9Xnh1JaR1QtCh4fSBY8vwCqprIYjd@OK3BQahKZwcVo2oW50pwppX7id9rs2srfYaWqmCSxSIVNRxqOPp1ZW"
198
+ I, [2018-06-20T07:19:54.110926 #29836] INFO -- key | do_decrypt_key | (line 480) : "The Base64 Char representation of this key => 011000011010001100100111011100011001011010011001110010100010101000000110011101011011011010010101110001001111000100110001011111110101101010101101011101101111100011101001010100000101"
199
+ I, [2018-06-20T07:19:54.111008 #29836] INFO -- key | do_decrypt_key | (line 481) : "256bit Digest (Urlsafe Base64) of this key => hQvwy9Sm2PHSJ6AuDtl4dhOF1gKfR1ydKcNelRZzYu0="
200
+ I, [2018-06-20T07:19:54.111521 #29836] INFO -- key | do_decrypt_key | (line 496) : "The OutgoingKey Base64 Char representation => isbrxRc4eGC6gZjDfxT2sxkK4OHPvd6LR4Zar6ssZOA@NDxaM2ZzFxi7fDDa7xUh"
201
+ I, [2018-06-20T07:19:54.116264 #29836] INFO -- key | do_decrypt_key | (line 476) : "### #####################################################################"
202
+ I, [2018-06-20T07:19:54.116306 #29836] INFO -- key | do_decrypt_key | (line 477) : "### Caller Details =>> =>> key.api | read_app_content | (line 681)"
203
+ I, [2018-06-20T07:19:54.116342 #29836] INFO -- key | do_decrypt_key | (line 478) : "### #####################################################################"
204
+ I, [2018-06-20T07:19:54.116377 #29836] INFO -- key | do_decrypt_key | (line 479) : "Amalgam of Binary Random IV and Ciphertext => I0pI@5%OzdER4kPQWh6DvdkjyqAPG4j2Of%4tujb@yT@IXce1N5rk6UjZhG5ehQuLOEqV7hDvE5cHl1he4TnAWmVtw6XMwS%nuVj6%rHM3zacit%S5sns5A3oebaT0sY"
205
+ I, [2018-06-20T07:19:54.116415 #29836] INFO -- key | do_decrypt_key | (line 480) : "The Base64 Char representation of this key => 111111001001011111111000111101100001001100101110110100101000111001010011010111100101101001111100000100111101011110110101001001111101011000000101101110000110100010111110110011110001010011010000100001101110100101000000111000010011001001001001100101000110010001100100011001111100111101000000101100110101100101000111100111111101111111110010000100111100111100000000110010111101110110101101"
206
+ I, [2018-06-20T07:19:54.116466 #29836] INFO -- key | do_decrypt_key | (line 481) : "256bit Digest (Urlsafe Base64) of this key => OV2cJi1zcgvh_WJD0xld30i_Ovnhqs3bveNsmI1Z-tM="
207
+ I, [2018-06-20T07:19:54.116942 #29836] INFO -- key | do_decrypt_key | (line 496) : "The OutgoingKey Base64 Char representation => L81G0yQKLWFRTMq5Bi%5sTHzKZi5aVfYozcgHsQPH%foRvfX899ruybvzrmVN5tB"
208
+ I, [2018-06-20T07:19:54.167392 #29836] INFO -- key.local | regenerate_shell_key | (line 157) : "### #####################################################################"
209
+ I, [2018-06-20T07:19:54.167459 #29836] INFO -- key.local | regenerate_shell_key | (line 158) : "### Caller Details =>> =>> key.api | write_app_content | (line 753)"
210
+ I, [2018-06-20T07:19:54.167496 #29836] INFO -- key.local | regenerate_shell_key | (line 159) : "### #####################################################################"
211
+ I, [2018-06-20T07:19:54.167647 #29836] INFO -- key.mach | derive_shell_identity_string | (line 85) : "### #####################################################################"
212
+ I, [2018-06-20T07:19:54.167687 #29836] INFO -- key.mach | derive_shell_identity_string | (line 86) : "### Caller Details =>> =>> key.local | derive_session_crypt_key | (line 232)"
213
+ I, [2018-06-20T07:19:54.167727 #29836] INFO -- key.mach | derive_shell_identity_string | (line 87) : "### #####################################################################"
214
+ I, [2018-06-20T07:19:54.167816 #29836] INFO -- key.mach | derive_shell_identity_string | (line 90) : "Etc.getlogin() => apollo"
215
+ I, [2018-06-20T07:19:54.167865 #29836] INFO -- key.mach | derive_shell_identity_string | (line 91) : "Socket.gethostname() => warehouse"
216
+ I, [2018-06-20T07:19:54.168352 #29836] INFO -- key.mach | derive_shell_identity_string | (line 92) : "get_net_address_digits() => 192168014"
217
+ I, [2018-06-20T07:19:54.168549 #29836] INFO -- key.mach | derive_shell_identity_string | (line 93) : "derive_network_identity() => 20cf3067dec3"
218
+ I, [2018-06-20T07:19:54.171104 #29836] INFO -- key.mach | derive_shell_identity_string | (line 94) : "get_bootup_time_digits() => 20000556"
219
+ I, [2018-06-20T07:19:54.171176 #29836] INFO -- key.mach | derive_shell_identity_string | (line 95) : "Process.ppid.to_s() => 26314"
220
+ I, [2018-06-20T07:19:54.173953 #29836] INFO -- key.local | derive_session_crypt_key | (line 237) : "Shell Identity Str => 41362655000023ced7603fc02410861291esuoherawollopa"
221
+ I, [2018-06-20T07:19:54.174047 #29836] INFO -- key.local | derive_session_crypt_key | (line 238) : "Shell Id TxtLength => 49"
222
+ I, [2018-06-20T07:19:54.174095 #29836] INFO -- key.local | derive_session_crypt_key | (line 239) : "Truncate Shell Str => false"
223
+ I, [2018-06-20T07:19:54.174134 #29836] INFO -- key.local | derive_session_crypt_key | (line 240) : "Resulting IDString => 41362655000023ced7603fc02410861291esuoherawollopa"
224
+ I, [2018-06-20T07:19:58.420300 #29836] INFO -- key.local | regenerate_shell_key | (line 169) : "BCrypt Salt REGEND => mqM3yu.Bin.H.nh4l3cwoO"
225
+ I, [2018-06-20T07:19:58.420379 #29836] INFO -- key.local | regenerate_shell_key | (line 170) : "SessionToken REGEN => 57UDSB@NPq7f1cRgu7xNmjbiVSCVnUlZoU61kjdKsAKj9Xnh1JaR1QtCh4fSBY8vwCqprIYjd@OK3BQahKZwcVo2oW50pwppX7id9rs2srfYaWqmCSxSIVNRxqOPp1ZWOowc3l4hn.H.niB.uy3Mqm"
226
+ I, [2018-06-20T07:19:58.420419 #29836] INFO -- key.local | regenerate_shell_key | (line 171) : "Chopped Ciphertext => 57UDSB@NPq7f1cRgu7xNmjbiVSCVnUlZoU61kjdKsAKj9Xnh1JaR1QtCh4fSBY8vwCqprIYjd@OK3BQahKZwcVo2oW50pwppX7id9rs2srfYaWqmCSxSIVNRxqOPp1ZW"
227
+ I, [2018-06-20T07:19:58.420459 #29836] INFO -- key.local | regenerate_shell_key | (line 172) : "Obfuscate ShellKey => 100101011110110111001010011010110001110001110100001101011011011101011010101110101111001110001101011111101001000001011100001011100010000001111001011100110000110000111001101101110011"
228
+ I, [2018-06-20T07:19:58.420552 #29836] INFO -- key | do_decrypt_key | (line 476) : "### #####################################################################"
229
+ I, [2018-06-20T07:19:58.420592 #29836] INFO -- key | do_decrypt_key | (line 477) : "### Caller Details =>> =>> key.local | regenerate_shell_key | (line 174)"
230
+ I, [2018-06-20T07:19:58.420628 #29836] INFO -- key | do_decrypt_key | (line 478) : "### #####################################################################"
231
+ I, [2018-06-20T07:19:58.420663 #29836] INFO -- key | do_decrypt_key | (line 479) : "Amalgam of Binary Random IV and Ciphertext => 57UDSB@NPq7f1cRgu7xNmjbiVSCVnUlZoU61kjdKsAKj9Xnh1JaR1QtCh4fSBY8vwCqprIYjd@OK3BQahKZwcVo2oW50pwppX7id9rs2srfYaWqmCSxSIVNRxqOPp1ZW"
232
+ I, [2018-06-20T07:19:58.420699 #29836] INFO -- key | do_decrypt_key | (line 480) : "The Base64 Char representation of this key => 100101011110110111001010011010110001110001110100001101011011011101011010101110101111001110001101011111101001000001011100001011100010000001111001011100110000110000111001101101110011"
233
+ I, [2018-06-20T07:19:58.420753 #29836] INFO -- key | do_decrypt_key | (line 481) : "256bit Digest (Urlsafe Base64) of this key => fyOgOc8SjEb5IwztXDTlinUIXAuDvHVdr7QcFXz9JYw="
234
+
235
+
236
+
237
+
238
+
239
+
240
+
241
+
242
+
243
+
244
+ ===================================================================================================================================================================================================
245
+ ===================================================================================================================================================================================================
246
+
247
+ I, [2018-06-20T07:16:31.020725 #27357] INFO -- key.local | generate_shell_key_and_token | (line 81) : "### #####################################################################"
248
+ I, [2018-06-20T07:16:31.020761 #27357] INFO -- key.local | generate_shell_key_and_token | (line 82) : "### Caller Details =>> =>> key | execute | (line 83)"
249
+ I, [2018-06-20T07:16:31.020799 #27357] INFO -- key.local | generate_shell_key_and_token | (line 83) : "### #####################################################################"
250
+ I, [2018-06-20T07:16:31.024921 #27357] INFO -- key.mach | derive_shell_identity_string | (line 85) : "### #####################################################################"
251
+ I, [2018-06-20T07:16:31.024971 #27357] INFO -- key.mach | derive_shell_identity_string | (line 86) : "### Caller Details =>> =>> key.local | derive_session_crypt_key | (line 232)"
252
+ I, [2018-06-20T07:16:31.025008 #27357] INFO -- key.mach | derive_shell_identity_string | (line 87) : "### #####################################################################"
253
+ I, [2018-06-20T07:16:31.025388 #27357] INFO -- key.mach | derive_shell_identity_string | (line 90) : "Etc.getlogin() => apollo"
254
+ I, [2018-06-20T07:16:31.025438 #27357] INFO -- key.mach | derive_shell_identity_string | (line 91) : "Socket.gethostname() => warehouse"
255
+ I, [2018-06-20T07:16:31.025920 #27357] INFO -- key.mach | derive_shell_identity_string | (line 92) : "get_net_address_digits() => 192168014"
256
+ I, [2018-06-20T07:16:31.031573 #27357] INFO -- key.mach | derive_shell_identity_string | (line 93) : "derive_network_identity() => 20cf3067dec3"
257
+ I, [2018-06-20T07:16:31.034135 #27357] INFO -- key.mach | derive_shell_identity_string | (line 94) : "get_bootup_time_digits() => 20000556"
258
+ I, [2018-06-20T07:16:31.034229 #27357] INFO -- key.mach | derive_shell_identity_string | (line 95) : "Process.ppid.to_s() => 26314"
259
+ I, [2018-06-20T07:16:31.037052 #27357] INFO -- key.local | derive_session_crypt_key | (line 237) : "Shell Identity Str => 41362555000023ced7603fc02410861291esuoherawollopa"
260
+ I, [2018-06-20T07:16:31.037138 #27357] INFO -- key.local | derive_session_crypt_key | (line 238) : "Shell Id TxtLength => 49"
261
+ I, [2018-06-20T07:16:31.037186 #27357] INFO -- key.local | derive_session_crypt_key | (line 239) : "Truncate Shell Str => false"
262
+ I, [2018-06-20T07:16:31.037222 #27357] INFO -- key.local | derive_session_crypt_key | (line 240) : "Resulting IDString => 41362555000023ced7603fc02410861291esuoherawollopa"
263
+
264
+ ===================================================================================================================================================================================================
265
+ ===================================================================================================================================================================================================
266
+
267
+ I, [2018-06-20T07:19:54.167392 #29836] INFO -- key.local | regenerate_shell_key | (line 157) : "### #####################################################################"
268
+ I, [2018-06-20T07:19:54.167459 #29836] INFO -- key.local | regenerate_shell_key | (line 158) : "### Caller Details =>> =>> key.api | write_app_content | (line 753)"
269
+ I, [2018-06-20T07:19:54.167496 #29836] INFO -- key.local | regenerate_shell_key | (line 159) : "### #####################################################################"
270
+ I, [2018-06-20T07:19:54.167647 #29836] INFO -- key.mach | derive_shell_identity_string | (line 85) : "### #####################################################################"
271
+ I, [2018-06-20T07:19:54.167687 #29836] INFO -- key.mach | derive_shell_identity_string | (line 86) : "### Caller Details =>> =>> key.local | derive_session_crypt_key | (line 232)"
272
+ I, [2018-06-20T07:19:54.167727 #29836] INFO -- key.mach | derive_shell_identity_string | (line 87) : "### #####################################################################"
273
+ I, [2018-06-20T07:19:54.167816 #29836] INFO -- key.mach | derive_shell_identity_string | (line 90) : "Etc.getlogin() => apollo"
274
+ I, [2018-06-20T07:19:54.167865 #29836] INFO -- key.mach | derive_shell_identity_string | (line 91) : "Socket.gethostname() => warehouse"
275
+ I, [2018-06-20T07:19:54.168352 #29836] INFO -- key.mach | derive_shell_identity_string | (line 92) : "get_net_address_digits() => 192168014"
276
+ I, [2018-06-20T07:19:54.168549 #29836] INFO -- key.mach | derive_shell_identity_string | (line 93) : "derive_network_identity() => 20cf3067dec3"
277
+ I, [2018-06-20T07:19:54.171104 #29836] INFO -- key.mach | derive_shell_identity_string | (line 94) : "get_bootup_time_digits() => 20000556"
278
+ I, [2018-06-20T07:19:54.171176 #29836] INFO -- key.mach | derive_shell_identity_string | (line 95) : "Process.ppid.to_s() => 26314"
279
+ I, [2018-06-20T07:19:54.173953 #29836] INFO -- key.local | derive_session_crypt_key | (line 237) : "Shell Identity Str => 41362655000023ced7603fc02410861291esuoherawollopa"
280
+ I, [2018-06-20T07:19:54.174047 #29836] INFO -- key.local | derive_session_crypt_key | (line 238) : "Shell Id TxtLength => 49"
281
+ I, [2018-06-20T07:19:54.174095 #29836] INFO -- key.local | derive_session_crypt_key | (line 239) : "Truncate Shell Str => false"
282
+ I, [2018-06-20T07:19:54.174134 #29836] INFO -- key.local | derive_session_crypt_key | (line 240) : "Resulting IDString => 41362655000023ced7603fc02410861291esuoherawollopa"
283
+ I, [2018-06-20T07:19:58.420300 #29836] INFO -- key.local | regenerate_shell_key | (line 169) : "BCrypt Salt REGEND => mqM3yu.Bin.H.nh4l3cwoO"
284
+ I, [2018-06-20T07:19:58.420379 #29836] INFO -- key.local | regenerate_shell_key | (line 170) : "SessionToken REGEN => 57UDSB@NPq7f1cRgu7xNmjbiVSCVnUlZoU61kjdKsAKj9Xnh1JaR1QtCh4fSBY8vwCqprIYjd@OK3BQahKZwcVo2oW50pwppX7id9rs2srfYaWqmCSxSIVNRxqOPp1ZWOowc3l4hn.H.niB.uy3Mqm"
285
+ I, [2018-06-20T07:19:58.420419 #29836] INFO -- key.local | regenerate_shell_key | (line 171) : "Chopped Ciphertext => 57UDSB@NPq7f1cRgu7xNmjbiVSCVnUlZoU61kjdKsAKj9Xnh1JaR1QtCh4fSBY8vwCqprIYjd@OK3BQahKZwcVo2oW50pwppX7id9rs2srfYaWqmCSxSIVNRxqOPp1ZW"
286
+ I, [2018-06-20T07:19:58.420459 #29836] INFO -- key.local | regenerate_shell_key | (line 172) : "Obfuscate ShellKey => 100101011110110111001010011010110001110001110100001101011011011101011010101110101111001110001101011111101001000001011100001011100010000001111001011100110000110000111001101101110011"
287
+ I, [2018-06-20T07:19:58.420552 #29836] INFO -- key | do_decrypt_key | (line 476) : "### #####################################################################"
288
+ I, [2018-06-20T07:19:58.420592 #29836] INFO -- key | do_decrypt_key | (line 477) : "### Caller Details =>> =>> key.local | regenerate_shell_key | (line 174)"
289
+ I, [2018-06-20T07:19:58.420628 #29836] INFO -- key | do_decrypt_key | (line 478) : "### #####################################################################"
290
+ I, [2018-06-20T07:19:58.420663 #29836] INFO -- key | do_decrypt_key | (line 479) : "Amalgam of Binary Random IV and Ciphertext => 57UDSB@NPq7f1cRgu7xNmjbiVSCVnUlZoU61kjdKsAKj9Xnh1JaR1QtCh4fSBY8vwCqprIYjd@OK3BQahKZwcVo2oW50pwppX7id9rs2srfYaWqmCSxSIVNRxqOPp1ZW"
291
+ I, [2018-06-20T07:19:58.420699 #29836] INFO -- key | do_decrypt_key | (line 480) : "The Base64 Char representation of this key => 100101011110110111001010011010110001110001110100001101011011011101011010101110101111001110001101011111101001000001011100001011100010000001111001011100110000110000111001101101110011"
292
+ I, [2018-06-20T07:19:58.420753 #29836] INFO -- key | do_decrypt_key | (line 481) : "256bit Digest (Urlsafe Base64) of this key => fyOgOc8SjEb5IwztXDTlinUIXAuDvHVdr7QcFXz9JYw="
293
+
294
+ ===================================================================================================================================================================================================
295
+ ===================================================================================================================================================================================================
@@ -12,9 +12,9 @@ require "session/user.home"
12
12
  #
13
13
  # include Logging
14
14
  # def doImportant
15
- # log.warn(ere) "unhappy about doing this"
15
+ # log.warn(x) "unhappy about doing this"
16
16
  # do_anyway
17
- # log.debug(ere) "all good it was okay"
17
+ # log.debug(x) "all good it was okay"
18
18
  # end
19
19
  #
20
20
  # So what are Mixins?
@@ -52,7 +52,7 @@ module OpenLogger
52
52
  #
53
53
  # - the [module] the logging call came from
54
54
  # - the [method] the logging call came from
55
- # - the [line number] the logging call is at
55
+ # - line number origins of the logging call
56
56
  #
57
57
  # To use this method you can make calls like this
58
58
  #
@@ -20,6 +20,26 @@ module OpenSecret
20
20
  # know whether the information is a password, a pin number or whatever
21
21
  # so it takes the integer minimum size at its word.
22
22
  #
23
+ # <b>Question 5 to App Config | What is the Secret?</b>
24
+ #
25
+ # The client may need to acquire the secret if the answer to question 4 indicates the need
26
+ # to instantiate the keys and encrypt the application's plaintext database. The application
27
+ # should facilitate communication of the secret via
28
+ #
29
+ # - an environment variable
30
+ # - the system clipboard (cleared after reading)
31
+ # - a file whose path is a command parameter
32
+ # - a file in a pre-agreed location
33
+ # - a file in the present directory (with a pre-agreed name)
34
+ # - a URL from a parameter or pre-agreed
35
+ # - the shell's secure password reader
36
+ # - the DConf / GConf or GSettings configuration stores
37
+ # - a REST API
38
+ # - password managers like LastPass, KeePassX or 1Pass
39
+ # - the Amazon KMS (Key Management Store)
40
+ # - vaults from Ansible, Terraform and Kubernetes
41
+ # - credential managers like GitSecrets and Credstash
42
+ #
23
43
  # @param min_size [Integer] the minimum size of the collected secret
24
44
  # whereby one (1) is the least we can expect. The maximum bound is
25
45
  # not constrained here so will fall under what is allowed by the
@@ -87,7 +87,7 @@ module OpenSession
87
87
 
88
88
 
89
89
  ############ require_relative "../cryptools/keygen"
90
- require_relative "../interprete/cmd"
90
+ require_relative "../usecase/cmd"
91
91
 
92
92
 
93
93
  gem_basepath = File.expand_path "..", gem_filepath
@@ -0,0 +1,417 @@
1
+ #!/usr/bin/ruby
2
+ # coding: utf-8
3
+
4
+ module OpenSecret
5
+
6
+ # The parent OpenSecret use case is designed to be extended by the cli
7
+ # (command line) use cases like {OpenSecret::Open}, {OpenSecret::Put} and
8
+ # {OpenSecret::Lock} because it describes behaviour common to at least two
9
+ # (but usually more) of the use cases.
10
+ #
11
+ # == Common Use Case Behaviour
12
+ #
13
+ # This {OpenSecret::Command} use case is designed to be extended and does preparatory
14
+ # work to create favourable and useful conditions to make use cases readable,
15
+ # less repetitive, simpler and concise.
16
+ #
17
+ # == Machine (Workstation) Configuration File
18
+ #
19
+ # The global configuration filepath is found off the home directory using {Dir.home}.
20
+ #
21
+ # ~/.opensecret.io/opensecret.io.configuration.ini
22
+ #
23
+ # The global configuration file in INI format is managed through the methods
24
+ #
25
+ # - {grab} read the value at key_name from the default section
26
+ # - {stash} put directive key/value pair in default section
27
+ # - {read} read the value at key_name from the parameter section
28
+ # - {write} put directive key/value pair in parameter section
29
+ class Command
30
+ =begin
31
+ # ---> rename from [Command] to [UseCase]
32
+ # ---> rename from [Command] to [UseCase]
33
+ # ---> rename from [Command] to [UseCase]
34
+ # ---> rename from [Command] to [UseCase]
35
+ # ---> rename from [Command] to [UseCase]
36
+ # ---> rename from [Command] to [UseCase]
37
+ =end
38
+
39
+ # The name of the environment variable that will hold the session token
40
+ # generated by {self.generate_session_token}. This environment variable
41
+ # is typically instantiated either manually (for ad-hoc use) or through
42
+ # media such as dot profile.
43
+ ENV_VAR_KEY_NAME = "OPEN_SESSION_TOKEN"
44
+
45
+
46
+ # If and when this command line credentials management app needs to write
47
+ # any configuration directives to the machine's userspace it will use this
48
+ # constant to denote the (off-home) directory name.
49
+ APP_DIR_NAME = "opensecret.io"
50
+
51
+ # The path to the initial configuration file below the user's home
52
+ # directory. The directory name the configuration file sits in is
53
+ # a dot prefixed context name derived from the value inside the
54
+ # {APP_DIR_NAME} constant.
55
+ #
56
+ # ~/.<<context-name>>/<<context-name>>-configuration.ini
57
+ #
58
+ # You can see the filename too is derived from the context with a
59
+ # trailing string ending in <b>.ini</b>.
60
+ #
61
+ # @return [String] full path to the context configuration file
62
+ def config_file
63
+ return File.join config_directory(), "#{APP_DIR_NAME}.configuration.ini"
64
+ end
65
+
66
+
67
+ # This method returns the absolute path to the directory that the
68
+ # configuration file sits in. It is basically just the dot prefixed
69
+ # context name (the {APP_DIR_NAME} constant).
70
+ #
71
+ # ~/.<<context-name>>
72
+ #
73
+ # @return [String] path to directory holding context configuration file
74
+ def config_directory
75
+ return File.join( Dir.home, ".#{APP_DIR_NAME}" )
76
+ end
77
+
78
+
79
+ # Execute the use cases's flow from beginning when
80
+ # you validate the input and parameters through the
81
+ # memorize, execute and the final cleanup.
82
+ def flow_of_events
83
+
84
+ check_pre_conditions
85
+ execute
86
+ cleanup
87
+ check_post_conditions
88
+
89
+ end
90
+
91
+
92
+ # Validate the input parameters and check that the current
93
+ # state is perfect for executing the use case.
94
+ #
95
+ # If either of the above fail - the validation function should
96
+ # set a human readable string and then throw an exception.
97
+ def check_pre_conditions
98
+
99
+
100
+ begin
101
+
102
+ pre_validation
103
+
104
+ rescue OpenError::CliError => e
105
+
106
+ puts ""
107
+ puts "Your command did not complete successfully."
108
+ puts "Pre validation checks failed."
109
+ puts ""
110
+ puts " => #{e.message}"
111
+ puts ""
112
+ abort e.message
113
+ end
114
+
115
+
116
+ end
117
+
118
+
119
+ # After the main flow of events certain state conditions
120
+ # must hold true thus demonstrating that the observable
121
+ # value has indeed ben delivered.
122
+ #
123
+ # Child classes should subclass this method and place any
124
+ # post execution (post condition) checks in it and then
125
+ # make a call to this method through the "super" keyword.
126
+ def check_post_conditions
127
+
128
+ begin
129
+
130
+ post_validation
131
+
132
+ rescue OpenError::CliError => e
133
+
134
+ puts ""
135
+ puts "Your command did not complete successfully."
136
+ puts "Post validation checks failed."
137
+ puts ""
138
+ puts " => #{e.message}"
139
+ #### puts " => #{e.culprit}"
140
+ puts ""
141
+ abort e.message
142
+ end
143
+
144
+ end
145
+
146
+
147
+ # Child classes should subclass this method and place any
148
+ # post execution (post condition) checks in it and then
149
+ # make a call to this method through the "super" keyword if
150
+ # this method gets any global behaviour in it worth calling.
151
+ def post_validation
152
+
153
+ end
154
+
155
+
156
+ # Execute the main flow of events of the use case. Any
157
+ # exceptions thrown are captured and if the instance
158
+ # variale [@human_readable_message] is set - tell the
159
+ # user about it. Without any message - just tell the
160
+ # user something went wrong and tell them where the logs
161
+ # are that might carry more information.
162
+ def execute
163
+
164
+ end
165
+
166
+
167
+ # If the use case validation went well, the memorization
168
+ # went well the
169
+ def cleanup
170
+
171
+ end
172
+
173
+
174
+ # This use case is initialized primary by resolving the configured
175
+ # +general and use case specific facts+. To access the general facts,
176
+ # a domain name is expected in the parameter delegated by the extension
177
+ # use case classes.
178
+ def initialize
179
+
180
+
181
+ class_name = self.class.name.downcase.split(":").last
182
+ is_pre_init_usecase = [ "safe", "store", "email" ].include? class_name
183
+ return if is_pre_init_usecase
184
+
185
+ @ucid_str = self.class.name.do_flatten
186
+ log.info(x) { "Usecase class [self.class.name] converted to => #{@ucid_str}" }
187
+ @ucid_sym = @ucid_str.gsub(".", "_").to_sym
188
+
189
+ OpenSession::FactFind.instance.instantiate @ucid_str
190
+ OpenSession::FactFind.instance.assimilate "facts.opensecret.io.ini"
191
+
192
+ @c = OpenSession::FactFind.instance.f
193
+ @i = OpenSession::FactFind.instance.i
194
+ @p = OpenSession::FactFind.instance.f[@ucid_sym]
195
+
196
+ log.info(x) { "assimilated [#{@p.length}] facts specific to the [#{@ucid_str}] use case." }
197
+
198
+ end
199
+
200
+
201
+ private
202
+
203
+
204
+ ENV_PATH = "env.path"
205
+ KEY_PATH = "key.path"
206
+ ENVELOPE_KEY_PREFIX = "envelope@"
207
+
208
+ LAST_ACCESSED = "last.accessed.time"
209
+
210
+ SESSION_DICT_LOCK_SIZE = 32
211
+
212
+ SESSION_DICT_LOCK_NAME = "crypted.session.dict.lock"
213
+
214
+ ENVELOPE_KEY_SIZE = 32
215
+
216
+ ENVELOPE_KEY_NAME = "crypted.envelope.key"
217
+
218
+ ENVELOPE_ID_SIZE = 16
219
+
220
+ ENVELOPE_ID_NAME = "crypted.envelope.id"
221
+
222
+ SESSION_ID_SIZE = 64
223
+
224
+ SESSION_FILENAME_ID_SIZE = 24
225
+
226
+ SESSION_START_TIMESTAMP_NAME = "session.creation.time"
227
+
228
+ MASTER_LOCK_KEY_NAME = "master.session.lock.key"
229
+
230
+ APPLICATION_GEM_NAME = "opensecret"
231
+ APPLICATION_GEM_WEBSITE = "https://www.devopswiki.co.uk"
232
+ APPLICATION_GITHUB_URL = "https://github.io/opensecret.io"
233
+
234
+
235
+ def create_header()
236
+
237
+ return OpenKey::KeyApi.format_header(
238
+ OpenSecret::VERSION,
239
+ APPLICATION_GEM_NAME,
240
+ APPLICATION_GITHUB_URL,
241
+ @domain_name
242
+ )
243
+
244
+ end
245
+
246
+
247
+
248
+ def ops_key_exists?
249
+
250
+ log_env()
251
+
252
+ if ( ENV.has_key? ENV_VAR_KEY_NAME )
253
+ return true
254
+ end
255
+
256
+ puts ""
257
+ puts "opensecret needs you to create a session key."
258
+ puts "To automate this step see the documentation."
259
+ puts "To create the key run the below command."
260
+ puts ""
261
+ puts " export OPEN_SESSION_TOKEN=`ops token`"
262
+ puts ""
263
+ puts "Those are backticks surrounding `ops token`"
264
+ puts "Not apostrophes."
265
+ puts ""
266
+
267
+ return false
268
+
269
+ end
270
+
271
+
272
+ def log_env()
273
+
274
+ log.info(x) { "Gem Root Folder => #{Gem.dir()}" }
275
+ log.info(x) { "Gem Config File => #{Gem.config_file()}" }
276
+ log.info(x) { "Gem Binary Path => #{Gem.default_bindir()}" }
277
+ log.info(x) { "Gem Host Path => #{Gem.host()}" }
278
+ log.info(x) { "Gem Spec Info => #{Gem.latest_spec_for(APPLICATION_GEM_NAME)}" }
279
+ log.info(x) { "Gem Spec Name => #{Gem.latest_spec_for(APPLICATION_GEM_NAME).name}" }
280
+ log.info(x) { "Gem Spec Version => #{Gem.latest_spec_for(APPLICATION_GEM_NAME).version}" }
281
+ log.info(x) { "Gem Caller Folder => #{Gem.location_of_caller()}" }
282
+ log.info(x) { "Gem Paths List => #{Gem.path()}" }
283
+ log.info(x) { "Gem Platforms => #{Gem.platforms()}" }
284
+ log.info(x) { "Gem Ruby Version X => #{Gem.ruby()}" }
285
+ log.info(x) { "Gem Ruby Version Y => #{Gem::VERSION}" }
286
+ log.info(x) { "Gem Ruby Version Z => #{Gem.latest_rubygems_version()}" }
287
+ log.info(x) { "Gem User Folder => #{Gem.user_dir()}" }
288
+ log.info(x) { "Gem User Home => #{Gem.user_home()}" }
289
+
290
+ return
291
+
292
+ end
293
+
294
+
295
+ def unopened_envelope?( key_database )
296
+
297
+ return false if key_database.has_key?( ENV_PATH )
298
+ print_unopened_envelope()
299
+ return true
300
+
301
+ end
302
+
303
+
304
+ def print_unopened_envelope()
305
+
306
+ puts ""
307
+ puts "Oops - before creating, reading or changing data you"
308
+ puts "must first open a path to it like this."
309
+ puts ""
310
+ puts " ops open email.accounts joe@gmail.com"
311
+ puts ""
312
+ puts " then you put data at that path"
313
+ puts ""
314
+ puts " ops put username joebloggs"
315
+ puts " ops put password jo3s-s3cr3t"
316
+ puts " ops put phone-no 07123456789"
317
+ puts " ops put question \"Mums maiden name\""
318
+ puts ""
319
+ puts " and why not read it back"
320
+ puts ""
321
+ puts " ops get password"
322
+ puts ""
323
+ puts " then close the path."
324
+ puts ""
325
+ puts " ops close"
326
+ puts ""
327
+
328
+ end
329
+
330
+
331
+ def print_already_logged_in
332
+
333
+ puts ""
334
+ puts "We are already logged in. Open a secret envelope, put, then seal."
335
+ puts ""
336
+ puts " ops open aws.credentials:s3reader"
337
+ puts " ops put access_key ABCD1234"
338
+ puts " ops put secret_key FGHIJ56789"
339
+ puts " ops put region_key eu-central-1"
340
+ puts " ops seal"
341
+ puts ""
342
+
343
+ end
344
+
345
+
346
+ def print_already_initialized
347
+
348
+ puts ""
349
+ puts "You can go ahead and login."
350
+ puts "Your domain [#{@domain_name}] is already setup."
351
+ puts "You should already know the password."
352
+ puts ""
353
+ puts " ops login #{@domain_name}"
354
+ puts ""
355
+
356
+ end
357
+
358
+
359
+ def print_domain_initialized
360
+
361
+ puts ""
362
+ puts "It is time to login."
363
+ puts "The protector keys for [#{@domain_name}] have been setup."
364
+ puts "From now on you simply login to use this domain."
365
+ puts ""
366
+ puts " ops login #{@domain_name}"
367
+ puts ""
368
+
369
+ end
370
+
371
+
372
+ def print_not_initialized
373
+
374
+ puts ""
375
+ puts "Please initialize the app domain on this machine."
376
+ puts "Give a domain name and a folder for key storage."
377
+ puts ""
378
+ puts " ops init <domain_name> \"$HOME/open.world\""
379
+ puts ""
380
+
381
+ end
382
+
383
+
384
+ def print_success_initializing
385
+
386
+ puts ""
387
+ puts "Success - now open a secret envelope, put, then seal."
388
+ puts ""
389
+ puts " ops open aws.credentials:s3reader"
390
+ puts " ops put access_key ABCD1234"
391
+ puts " ops put secret_key FGHIJ56789"
392
+ puts " ops put region_key eu-central-1"
393
+ puts " ops seal"
394
+ puts ""
395
+
396
+ end
397
+
398
+
399
+ def print_login_success
400
+
401
+ puts ""
402
+ puts "Success - you are logged in."
403
+ puts ""
404
+ puts " ops open aws.credentials:s3reader"
405
+ puts " ops put access_key ABCD1234"
406
+ puts " ops put secret_key FGHIJ56789"
407
+ puts " ops put region_key eu-central-1"
408
+ puts " ops seal"
409
+ puts ""
410
+
411
+ end
412
+
413
+
414
+ end
415
+
416
+
417
+ end