replace byte32 type on hashes to Hash

This commit is contained in:
austinabell 2019-09-03 14:17:55 -04:00
parent 76be9d2507
commit 6f17cc349e
3 changed files with 9 additions and 9 deletions

View File

@ -6,7 +6,7 @@ import * as random from "secure-random";
import {calculateYFlag, getModulus, padLeft} from "./utils"; import {calculateYFlag, getModulus, padLeft} from "./utils";
import assert from "assert"; import assert from "assert";
import {FP_POINT_LENGTH, G2_HASH_PADDING} from "../constants"; import {FP_POINT_LENGTH, G2_HASH_PADDING} from "../constants";
import {bytes32, bytes48, Domain} from "@chainsafe/eth2.0-types"; import {bytes48, Domain, Hash} from "@chainsafe/eth2.0-types";
export class G2point { export class G2point {
@ -58,7 +58,7 @@ export class G2point {
]); ]);
} }
public static hashToG2(message: bytes32, domain: Domain): G2point { public static hashToG2(message: Hash, domain: Domain): G2point {
const padding = Buffer.alloc(G2_HASH_PADDING, 0); const padding = Buffer.alloc(G2_HASH_PADDING, 0);
const xReBytes = Buffer.concat([ const xReBytes = Buffer.concat([
padding, padding,

View File

@ -6,7 +6,7 @@ import {PublicKey} from "./publicKey";
import {Signature} from "./signature"; import {Signature} from "./signature";
import {ElipticCurvePairing} from "./helpers/ec-pairing"; import {ElipticCurvePairing} from "./helpers/ec-pairing";
import ctx from "./ctx"; import ctx from "./ctx";
import {BLSPubkey, BLSSecretKey, BLSSignature, bytes32, Domain} from "@chainsafe/eth2.0-types"; import {BLSPubkey, BLSSecretKey, BLSSignature, Domain, Hash} from "@chainsafe/eth2.0-types";
export {Keypair, PrivateKey, PublicKey, Signature}; export {Keypair, PrivateKey, PublicKey, Signature};
@ -32,7 +32,7 @@ export function generatePublicKey(secretKey: BLSSecretKey): BLSPubkey {
* @param messageHash * @param messageHash
* @param domain * @param domain
*/ */
export function sign(secretKey: BLSSecretKey, messageHash: bytes32, domain: Domain): BLSSignature { export function sign(secretKey: BLSSecretKey, messageHash: Hash, domain: Domain): BLSSignature {
const privateKey = PrivateKey.fromBytes(secretKey); const privateKey = PrivateKey.fromBytes(secretKey);
const hash = G2point.hashToG2(messageHash, domain); const hash = G2point.hashToG2(messageHash, domain);
return privateKey.sign(hash).toBytesCompressed(); return privateKey.sign(hash).toBytesCompressed();
@ -72,7 +72,7 @@ export function aggregatePubkeys(publicKeys: BLSPubkey[]): BLSPubkey {
* @param signature * @param signature
* @param domain * @param domain
*/ */
export function verify(publicKey: BLSPubkey, messageHash: bytes32, signature: BLSSignature, domain: Domain): boolean { export function verify(publicKey: BLSPubkey, messageHash: Hash, signature: BLSSignature, domain: Domain): boolean {
try { try {
const key = PublicKey.fromBytes(publicKey); const key = PublicKey.fromBytes(publicKey);
const sig = Signature.fromCompressedBytes(signature); const sig = Signature.fromCompressedBytes(signature);
@ -93,7 +93,7 @@ export function verify(publicKey: BLSPubkey, messageHash: bytes32, signature: BL
* @param signature * @param signature
* @param domain * @param domain
*/ */
export function verifyMultiple(publicKeys: BLSPubkey[], messageHashes: bytes32[], signature: BLSSignature, domain: Domain): boolean { export function verifyMultiple(publicKeys: BLSPubkey[], messageHashes: Hash[], signature: BLSSignature, domain: Domain): boolean {
if(publicKeys.length === 0 || publicKeys.length != messageHashes.length) { if(publicKeys.length === 0 || publicKeys.length != messageHashes.length) {
return false; return false;
} }

View File

@ -5,7 +5,7 @@ import ctx from "./ctx";
import {padLeft} from "./helpers/utils"; import {padLeft} from "./helpers/utils";
import {G2point} from "./helpers/g2point"; import {G2point} from "./helpers/g2point";
import * as random from "secure-random"; import * as random from "secure-random";
import {BLSSecretKey, bytes32, Domain} from "@chainsafe/eth2.0-types"; import {BLSSecretKey, Hash, Domain} from "@chainsafe/eth2.0-types";
export class PrivateKey { export class PrivateKey {
@ -23,7 +23,7 @@ export class PrivateKey {
return message.mul(this.value); return message.mul(this.value);
} }
public signMessage(message: bytes32, domain: Domain): G2point { public signMessage(message: Hash, domain: Domain): G2point {
return G2point.hashToG2(message, domain).mul(this.value); return G2point.hashToG2(message, domain).mul(this.value);
} }