Class: CryptoToolchain::BlackBoxes::EcbCutAndPasteTarget
- Defined in:
- lib/crypto_toolchain/black_boxes/ecb_cut_and_paste_target.rb
Instance Method Summary collapse
- #cookie_for(email) ⇒ Object (also: #profile_for)
- #decrypt(enc) ⇒ Object
- #encrypted_profile_for(email) ⇒ Object (also: #encrypt)
-
#initialize(key: String.random_bytes(16)) ⇒ EcbCutAndPasteTarget
constructor
A new instance of EcbCutAndPasteTarget.
Constructor Details
#initialize(key: String.random_bytes(16)) ⇒ EcbCutAndPasteTarget
Returns a new instance of EcbCutAndPasteTarget.
13 14 15 |
# File 'lib/crypto_toolchain/black_boxes/ecb_cut_and_paste_target.rb', line 13 def initialize(key: String.random_bytes(16)) @key = key end |
Instance Method Details
#cookie_for(email) ⇒ Object Also known as: profile_for
17 18 19 20 21 22 23 24 25 |
# File 'lib/crypto_toolchain/black_boxes/ecb_cut_and_paste_target.rb', line 17 def (email) { email: email.gsub(/&|=/, ""), uid: 10, role: "user" }.each_with_object([]) do |(k, v), memo| memo << "#{k}=#{v}" end.join("&") end |
#decrypt(enc) ⇒ Object
33 34 35 36 37 38 39 40 41 42 43 |
# File 'lib/crypto_toolchain/black_boxes/ecb_cut_and_paste_target.rb', line 33 def decrypt(enc) enc. decrypt_ecb(key: key, blocksize: 16). split("&"). map do |str| k, v = str.split("=") [k, v || ""] end. to_h. symbolize_keys end |
#encrypted_profile_for(email) ⇒ Object Also known as: encrypt
28 29 30 |
# File 'lib/crypto_toolchain/black_boxes/ecb_cut_and_paste_target.rb', line 28 def encrypted_profile_for(email) profile_for(email).encrypt_ecb(key: key, blocksize: 16) end |