@@ -9,27 +9,44 @@ public static class ChameleonHashHelper
99 // Kn = public key
1010 // kn = private key
1111
12- public static BigInteger Sign ( ChameleonHashRequest request )
12+ public static ChameleonSignature Sign ( ChameleonHashRequest request )
1313 {
1414 // sign = (sessionKey - dn) mod n
1515 // dn = H(m) * kn
1616 var msgHash = HashHelper . Sha256 ( request . Message ) ;
1717 var dn = msgHash . Multiply ( request . KeyPair . PrivateKey ) ;
18- return request . SessionKey . Add ( dn ) . Mod ( request . Order ) ;
18+ return new ChameleonSignature ( )
19+ {
20+ Value = request . SessionKey . Add ( dn ) . Mod ( request . Order )
21+ } ;
1922 }
2023
2124 public static bool Verify ( ChameleonHashRequest request , ECPoint rightChameleonHash )
2225 {
23- return GetChameleonHash ( request ) . Equals ( rightChameleonHash ) ;
26+ var chameleohHash = GetChameleonHash ( request ) ;
27+ return chameleohHash . Value . Equals ( rightChameleonHash ) ;
2428 }
2529
26- public static ECPoint GetChameleonHash ( ChameleonHashRequest request )
30+ public static ChameleonHash GetChameleonHash ( ChameleonHashRequest request )
2731 {
2832 // chameleonHash = [Kn x H(m)] + [P x sessionKey]
2933 var msgHash = HashHelper . Sha256 ( request . Message ) ;
3034 var rP = request . KeyPair . BasePoint . Multiply ( request . Signature ) ;
31- var chameleonHash = request . KeyPair . PublicKey . Multiply ( msgHash ) . Add ( rP ) . Normalize ( ) ;
32- return chameleonHash ;
35+
36+ return new ChameleonHash ( )
37+ {
38+ Value = request . KeyPair . PublicKey . Multiply ( msgHash ) . Add ( rP ) . Normalize ( )
39+ } ;
3340 }
3441
42+ }
43+
44+ public class ChameleonHash
45+ {
46+ public ECPoint Value { get ; set ; }
47+ }
48+
49+ public class ChameleonSignature
50+ {
51+ public BigInteger Value { get ; set ; }
3552}
0 commit comments