Module: Ed25519
- Defined in:
- lib/red25519.rb,
lib/red25519/keys.rb,
lib/red25519/version.rb,
lib/red25519/jruby_engine.rb,
ext/red25519/red25519_engine.c
Defined Under Namespace
Modules: Engine Classes: SelfTestFailure, SigningKey, VerifyKey
Constant Summary collapse
- SECRET_KEY_BYTES =
32
- PUBLIC_KEY_BYTES =
32
- SIGNATURE_BYTES =
64
- VERSION =
"1.1.0"
Class Method Summary collapse
Class Method Details
.test ⇒ Object
13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 |
# File 'lib/red25519.rb', line 13 def self.test signature_key = Ed25519::SigningKey.new("A" * 32) unless signature_key.verify_key.to_hex == 'db995fe25169d141cab9bbba92baa01f9f2e1ece7df4cb2ac05190f37fcc1f9d' raise SelfTestFailure, "failed to generate verify key correctly" end = "crypto libraries should self-test on boot" signature = signature_key.sign() unless signature.unpack("H*").first == 'c62c12a3a6cbfa04800d4be81468ef8aecd152a6a26a81d91257baecef13ba209531fe905a843e833c8b71cee04400fa2af3a29fef1152ece470421848758d0a' raise SelfTestFailure, "failed to generate correct signature" end verify_key = signature_key.verify_key unless verify_key.verify(signature, ) raise SelfTestFailure, "failed to verify a valid signature" end bad_signature = signature[0...63] + 'X' unless verify_key.verify(bad_signature, ) == false raise SelfTestFailure, "failed to detect an invalid signature" end end |