Module: Noise

Defined in:
lib/noise.rb,
lib/noise/key.rb,
lib/noise/state.rb,
lib/noise/pattern.rb,
lib/noise/version.rb,
lib/noise/key_pair.rb,
lib/noise/protocol.rb,
lib/noise/functions.rb,
lib/noise/connection.rb,
lib/noise/exceptions.rb,
lib/noise/functions/dh.rb,
lib/noise/utils/string.rb,
lib/noise/functions/hash.rb,
lib/noise/connection/base.rb,
lib/noise/functions/cipher.rb,
lib/noise/functions/dh/ed448.rb,
lib/noise/state/cipher_state.rb,
lib/noise/connection/initiator.rb,
lib/noise/connection/responder.rb,
lib/noise/functions/dh/ed25519.rb,
lib/noise/functions/hash/blake3.rb,
lib/noise/functions/hash/sha256.rb,
lib/noise/functions/hash/sha512.rb,
lib/noise/state/handshake_state.rb,
lib/noise/state/symmetric_state.rb,
lib/noise/functions/dh/secp256k1.rb,
lib/noise/functions/hash/blake2b.rb,
lib/noise/functions/hash/blake2s.rb,
lib/noise/exceptions/decrypt_error.rb,
lib/noise/exceptions/encrypt_error.rb,
lib/noise/functions/cipher/aes_gcm.rb,
lib/noise/exceptions/max_nonce_error.rb,
lib/noise/exceptions/noise_psk_error.rb,
lib/noise/exceptions/psk_value_error.rb,
lib/noise/functions/cipher/cha_cha_poly.rb,
lib/noise/exceptions/invalid_nonce_error.rb,
lib/noise/exceptions/protocol_name_error.rb,
lib/noise/exceptions/noise_handshake_error.rb,
lib/noise/exceptions/message_too_long_error.rb,
lib/noise/exceptions/noise_validation_error.rb,
lib/noise/exceptions/invalid_public_key_error.rb,
lib/noise/exceptions/missing_dependency_error.rb,
lib/noise/exceptions/unsupported_modifier_error.rb

Defined Under Namespace

Modules: Connection, Exceptions, Functions, KeyPair, Modifier, State, Token, Utils Classes: DeferredPattern, Key, OneWayPattern, Pattern, PatternI1K, PatternI1K1, PatternI1N, PatternI1X, PatternI1X1, PatternIK, PatternIK1, PatternIN, PatternIX, PatternIX1, PatternK, PatternK1K, PatternK1K1, PatternK1N, PatternK1X, PatternK1X1, PatternKK, PatternKK1, PatternKN, PatternKX, PatternKX1, PatternN, PatternNK, PatternNK1, PatternNN, PatternNX, PatternNX1, PatternX, PatternX1K, PatternX1K1, PatternX1N, PatternX1X, PatternX1X1, PatternXK, PatternXK1, PatternXN, PatternXX, PatternXX1, Protocol

Constant Summary collapse

VERSION =
'0.12.0'

Class Method Summary collapse

Class Method Details

.loggerObject



30
31
32
# File 'lib/noise.rb', line 30

def logger
  @logger ||= Logger.new($stdout)
end

.optional_dependency!(name) ⇒ Object



42
43
44
45
46
47
# File 'lib/noise.rb', line 42

def optional_dependency!(name)
  reason = @unavailable_dependencies[name]
  return if reason.nil?

  raise Noise::Exceptions::MissingDependencyError, "'#{name}' could not be loaded: #{reason}"
end

.require_optional(name) ⇒ Object



34
35
36
37
38
39
40
# File 'lib/noise.rb', line 34

def require_optional(name)
  require name
  yield if block_given?
rescue LoadError => e
  @unavailable_dependencies[name] = e.message
  logger.warn("Optional dependency '#{name}' is unavailable: #{e.message}")
end