Class: Zwiebel::HiddenService::V3
- Inherits:
-
Object
- Object
- Zwiebel::HiddenService::V3
- Defined in:
- lib/zwiebel/hidden_service/v3.rb
Instance Attribute Summary collapse
-
#descriptor ⇒ Object
Returns the value of attribute descriptor.
-
#inner_layer ⇒ Object
Returns the value of attribute inner_layer.
-
#onion_address ⇒ Object
Returns the value of attribute onion_address.
-
#outer_layer ⇒ Object
Returns the value of attribute outer_layer.
Instance Method Summary collapse
- #decrypt ⇒ Object
-
#initialize(descriptor_string:, onion_address:) ⇒ V3
constructor
A new instance of V3.
Constructor Details
#initialize(descriptor_string:, onion_address:) ⇒ V3
Returns a new instance of V3.
21 22 23 24 |
# File 'lib/zwiebel/hidden_service/v3.rb', line 21 def initialize(descriptor_string:, onion_address:) @descriptor = Descriptor.new(string: descriptor_string) @onion_address = onion_address end |
Instance Attribute Details
#descriptor ⇒ Object
Returns the value of attribute descriptor.
19 20 21 |
# File 'lib/zwiebel/hidden_service/v3.rb', line 19 def descriptor @descriptor end |
#inner_layer ⇒ Object
Returns the value of attribute inner_layer.
19 20 21 |
# File 'lib/zwiebel/hidden_service/v3.rb', line 19 def inner_layer @inner_layer end |
#onion_address ⇒ Object
Returns the value of attribute onion_address.
19 20 21 |
# File 'lib/zwiebel/hidden_service/v3.rb', line 19 def onion_address @onion_address end |
#outer_layer ⇒ Object
Returns the value of attribute outer_layer.
19 20 21 |
# File 'lib/zwiebel/hidden_service/v3.rb', line 19 def outer_layer @outer_layer end |
Instance Method Details
#decrypt ⇒ Object
26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 |
# File 'lib/zwiebel/hidden_service/v3.rb', line 26 def decrypt blinded_key = descriptor.certificate.signing_key identity_public_key = Zwiebel.v3_address_pubkey(onion_address) subcredential = descriptor.subcredential(identity_public_key) decrypted_outer_layer = Utilities.decrypt_layer( encrypted_data: descriptor.superencrypted, constant: "hsdir-superencrypted-data", revision_counter: descriptor.revision_counter, subcredential: subcredential, blinded_key: blinded_key ) @outer_layer = OuterLayer.new(decrypted_data: decrypted_outer_layer) decrypted_inner_layer = Utilities.decrypt_layer( encrypted_data: outer_layer.encrypted, constant: "hsdir-encrypted-data", revision_counter: descriptor.revision_counter, subcredential: subcredential, blinded_key: blinded_key ) @inner_layer = InnerLayer.new(decrypted_data: decrypted_inner_layer) end |