Added eel and eapml in EWF libraries.
Removed them from gitmodule
This commit is contained in:
@@ -0,0 +1,89 @@
|
||||
note
|
||||
description: "Objects that ..."
|
||||
author: "Colin LeMahieu"
|
||||
date: "$Date$"
|
||||
revision: "$Revision$"
|
||||
quote: "Liberty is always dangerous, but it is the safest thing we have. - Harry Emerson Fosdick"
|
||||
|
||||
class
|
||||
EC_PRIVATE_KEY
|
||||
|
||||
inherit
|
||||
EC_KEY_PARAMETERS
|
||||
DEBUG_OUTPUT
|
||||
EC_CONSTANTS
|
||||
|
||||
create
|
||||
make_d_params
|
||||
|
||||
feature
|
||||
make_d_params (d_new: INTEGER_X params_new: EC_DOMAIN_PARAMETERS)
|
||||
do
|
||||
params := params_new
|
||||
d := d_new
|
||||
end
|
||||
|
||||
agreement (other: EC_PUBLIC_KEY): INTEGER_X
|
||||
do
|
||||
result := (other.q.product_value (d, params.curve)).x.x
|
||||
ensure
|
||||
symmetric: result ~ other.agreement (current)
|
||||
end
|
||||
|
||||
sign (e: INTEGER_X): TUPLE [r: INTEGER_X s: INTEGER_X]
|
||||
require
|
||||
message_too_big: e < params.n
|
||||
local
|
||||
r: INTEGER_X
|
||||
s: INTEGER_X
|
||||
k: INTEGER_X
|
||||
nBitLength: INTEGER_32
|
||||
p: EC_POINT
|
||||
x: INTEGER_X
|
||||
n: INTEGER_X
|
||||
do
|
||||
n := params.n
|
||||
create s.default_create
|
||||
create r.default_create
|
||||
create k.default_create
|
||||
nBitLength := params.n.bits
|
||||
from
|
||||
until
|
||||
s /~ s.zero
|
||||
loop
|
||||
from
|
||||
until
|
||||
r /~ r.zero
|
||||
loop
|
||||
from
|
||||
until
|
||||
k /~ k.zero
|
||||
loop
|
||||
create k.make_random (nBitLength)
|
||||
end
|
||||
p := params.g.product_value (k, params.curve)
|
||||
x := p.x.x
|
||||
r := x \\ params.n
|
||||
end
|
||||
--s := ((k.inverse_value (params.n) * (e + d * r))) \\ params.n
|
||||
s := d.identity
|
||||
s.product (r)
|
||||
s.plus (e)
|
||||
k.inverse (n)
|
||||
s.product (k)
|
||||
s.modulo (n)
|
||||
end
|
||||
create result
|
||||
result.r := r
|
||||
result.s := s
|
||||
end
|
||||
|
||||
feature
|
||||
d: INTEGER_X
|
||||
|
||||
feature {DEBUG_OUTPUT} -- {DEBUG_OUTPUT}
|
||||
debug_output: STRING
|
||||
do
|
||||
result := "0x" + d.out_hex
|
||||
end
|
||||
end
|
||||
Reference in New Issue
Block a user