ed25519 0.1.0 → 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (92) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGES.md +13 -0
  3. data/README.md +6 -3
  4. data/Rakefile +4 -4
  5. data/ed25519.gemspec +3 -3
  6. data/ext/{ed25519 → ed25519_java}/org/cryptosphere/ed25519.java +0 -0
  7. data/ext/{ed25519 → ed25519_ref10}/api.h +1 -1
  8. data/ext/ed25519_ref10/base.h +1344 -0
  9. data/ext/ed25519_ref10/base2.h +40 -0
  10. data/ext/ed25519_ref10/d.h +1 -0
  11. data/ext/ed25519_ref10/d2.h +1 -0
  12. data/ext/ed25519_ref10/ed25519_ref10.c +99 -0
  13. data/ext/ed25519_ref10/ed25519_ref10.h +33 -0
  14. data/ext/ed25519_ref10/extconf.rb +9 -0
  15. data/ext/ed25519_ref10/fe.h +56 -0
  16. data/ext/ed25519_ref10/fe_0.c +19 -0
  17. data/ext/ed25519_ref10/fe_1.c +19 -0
  18. data/ext/ed25519_ref10/fe_add.c +57 -0
  19. data/ext/ed25519_ref10/fe_cmov.c +63 -0
  20. data/ext/ed25519_ref10/fe_copy.c +29 -0
  21. data/ext/ed25519_ref10/fe_frombytes.c +71 -0
  22. data/ext/ed25519_ref10/fe_invert.c +14 -0
  23. data/ext/ed25519_ref10/fe_isnegative.c +16 -0
  24. data/ext/ed25519_ref10/fe_isnonzero.c +19 -0
  25. data/ext/ed25519_ref10/fe_mul.c +252 -0
  26. data/ext/ed25519_ref10/fe_neg.c +45 -0
  27. data/ext/ed25519_ref10/fe_pow22523.c +13 -0
  28. data/ext/ed25519_ref10/fe_sq.c +148 -0
  29. data/ext/ed25519_ref10/fe_sq2.c +159 -0
  30. data/ext/ed25519_ref10/fe_sub.c +57 -0
  31. data/ext/ed25519_ref10/fe_tobytes.c +119 -0
  32. data/ext/ed25519_ref10/ge.h +95 -0
  33. data/ext/ed25519_ref10/ge_add.c +11 -0
  34. data/ext/ed25519_ref10/ge_add.h +97 -0
  35. data/ext/ed25519_ref10/ge_double_scalarmult.c +96 -0
  36. data/ext/ed25519_ref10/ge_frombytes.c +50 -0
  37. data/ext/ed25519_ref10/ge_madd.c +11 -0
  38. data/ext/ed25519_ref10/ge_madd.h +88 -0
  39. data/ext/ed25519_ref10/ge_msub.c +11 -0
  40. data/ext/ed25519_ref10/ge_msub.h +88 -0
  41. data/ext/ed25519_ref10/ge_p1p1_to_p2.c +12 -0
  42. data/ext/ed25519_ref10/ge_p1p1_to_p3.c +13 -0
  43. data/ext/ed25519_ref10/ge_p2_0.c +8 -0
  44. data/ext/ed25519_ref10/ge_p2_dbl.c +11 -0
  45. data/ext/ed25519_ref10/ge_p2_dbl.h +73 -0
  46. data/ext/ed25519_ref10/ge_p3_0.c +9 -0
  47. data/ext/ed25519_ref10/ge_p3_dbl.c +12 -0
  48. data/ext/ed25519_ref10/ge_p3_to_cached.c +17 -0
  49. data/ext/ed25519_ref10/ge_p3_to_p2.c +12 -0
  50. data/ext/ed25519_ref10/ge_p3_tobytes.c +14 -0
  51. data/ext/ed25519_ref10/ge_precomp_0.c +8 -0
  52. data/ext/ed25519_ref10/ge_scalarmult_base.c +104 -0
  53. data/ext/ed25519_ref10/ge_sub.c +11 -0
  54. data/ext/ed25519_ref10/ge_sub.h +97 -0
  55. data/ext/ed25519_ref10/ge_tobytes.c +14 -0
  56. data/ext/ed25519_ref10/keypair.c +22 -0
  57. data/ext/ed25519_ref10/open.c +47 -0
  58. data/ext/ed25519_ref10/pow22523.h +160 -0
  59. data/ext/ed25519_ref10/pow225521.h +160 -0
  60. data/ext/ed25519_ref10/sc.h +17 -0
  61. data/ext/ed25519_ref10/sc_muladd.c +366 -0
  62. data/ext/ed25519_ref10/sc_reduce.c +272 -0
  63. data/ext/{ed25519/sha512-blocks.c → ed25519_ref10/sha512.c} +108 -43
  64. data/ext/ed25519_ref10/sha512.h +8 -0
  65. data/ext/ed25519_ref10/sign.c +41 -0
  66. data/ext/ed25519_ref10/sqrtm1.h +1 -0
  67. data/ext/{ed25519 → ed25519_ref10}/verify.c +2 -2
  68. data/lib/ed25519.rb +40 -9
  69. data/lib/ed25519/provider/jruby.rb +39 -0
  70. data/lib/ed25519/signing_key.rb +11 -7
  71. data/lib/ed25519/verify_key.rb +26 -10
  72. data/lib/ed25519/version.rb +1 -1
  73. metadata +66 -26
  74. data/ext/ed25519/crypto_int32.h +0 -6
  75. data/ext/ed25519/crypto_sign.h +0 -13
  76. data/ext/ed25519/crypto_uint32.h +0 -6
  77. data/ext/ed25519/crypto_verify_32.h +0 -7
  78. data/ext/ed25519/ed25519.c +0 -136
  79. data/ext/ed25519/ed25519_engine.c +0 -82
  80. data/ext/ed25519/extconf.rb +0 -6
  81. data/ext/ed25519/fe25519.c +0 -326
  82. data/ext/ed25519/fe25519.h +0 -63
  83. data/ext/ed25519/ge25519.c +0 -311
  84. data/ext/ed25519/ge25519.h +0 -35
  85. data/ext/ed25519/ge25519_base.data +0 -850
  86. data/ext/ed25519/sc25519.c +0 -298
  87. data/ext/ed25519/sc25519.h +0 -73
  88. data/ext/ed25519/sha512-hash.c +0 -72
  89. data/ext/ed25519/sha512.h +0 -4
  90. data/lib/ed25519/jruby_engine.rb +0 -30
  91. data/tasks/extension.rake +0 -14
  92. data/tasks/rspec.rake +0 -9
@@ -1,30 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require "java"
4
-
5
- module Ed25519
6
- # Core functionality provided by an Ed25519 library
7
- module Engine
8
- module_function
9
-
10
- def create_keypair(seed)
11
- raise ArgumentError, "seed must be 32 bytes long" unless seed.length == 32
12
-
13
- verify_key = org.cryptosphere.ed25519.publickey(seed.to_java_bytes)
14
- verify_key = String.from_java_bytes(verify_key)
15
- [verify_key, seed + verify_key]
16
- end
17
-
18
- def sign(signing_key, message)
19
- verify_key = signing_key[32...64].to_java_bytes
20
- signing_key = signing_key[0...32].to_java_bytes
21
-
22
- signature = org.cryptosphere.ed25519.signature(message.to_java_bytes, signing_key, verify_key)
23
- String.from_java_bytes(signature)
24
- end
25
-
26
- def verify(verify_key, signature, message)
27
- org.cryptosphere.ed25519.checkvalid(signature.to_java_bytes, message.to_java_bytes, verify_key.to_java_bytes)
28
- end
29
- end
30
- end
@@ -1,14 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- if defined? JRUBY_VERSION
4
- require "rake/javaextensiontask"
5
- Rake::JavaExtensionTask.new("ed25519_engine") do |ext|
6
- ext.ext_dir = "ext/ed25519"
7
- end
8
- else
9
- require "rake/extensiontask"
10
-
11
- Rake::ExtensionTask.new("ed25519_engine") do |ext|
12
- ext.ext_dir = "ext/ed25519"
13
- end
14
- end
@@ -1,9 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require "rspec/core/rake_task"
4
-
5
- RSpec::Core::RakeTask.new
6
-
7
- RSpec::Core::RakeTask.new(:rcov) do |task|
8
- task.rcov = true
9
- end