File: ed25519_loader.rb

package info (click to toggle)
ruby-net-ssh 1%3A6.1.0-2%2Bdeb11u1
  • links: PTS, VCS
  • area: main
  • in suites: bullseye
  • size: 1,884 kB
  • sloc: ruby: 15,997; makefile: 4
file content (34 lines) | stat: -rw-r--r-- 1,104 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
module Net 
  module SSH 
    module Authentication

      # Loads ED25519 support which requires optinal dependecies like
      # ed25519, bcrypt_pbkdf
      module ED25519Loader
      
        begin
          require 'net/ssh/authentication/ed25519'
          LOADED = true
          ERROR = nil
        rescue LoadError => e
          ERROR = e
          LOADED = false
        end
      
        def self.raiseUnlessLoaded(message)
          description = ERROR.is_a?(LoadError) ? dependenciesRequiredForED25519 : ''
          description << "#{ERROR.class} : \"#{ERROR.message}\"\n" if ERROR
          raise NotImplementedError, "#{message}\n#{description}" unless LOADED
        end
      
        def self.dependenciesRequiredForED25519
          result = "net-ssh requires the following gems for ed25519 support:\n"
          result << " * ed25519 (>= 1.2, < 2.0)\n"
          result << " * bcrypt_pbkdf (>= 1.0, < 2.0)\n" unless RUBY_PLATFORM == "java"
          result << "See https://github.com/net-ssh/net-ssh/issues/565 for more information\n"
        end
      
      end
    end
  end
end