// //------------------ DOK FILE -------------------------------------------------- +Header core.crypto.ec =pkg core.crypto.ec =title core.crypto.ec =short =desc Documentation in progress... // // //------------------ PROTO ----------------------------------------------------- EcKey +Proto EcKey =type EcKey =mode structure =pkg core.crypto.ec =impl mcy =link =desc // // //------------------ PROTO ----------------------------------------------------- EllipticCurve +Proto EllipticCurve =type EllipticCurve =mode structure =pkg core.crypto.ec =impl mcy =link =desc // // //------------------ PROTO ----------------------------------------------------- ecDump +Proto ecDump =type fun Str [BigNum BigNum] -> [BigNum BigNum] =mode function =pkg core.crypto.ec =impl mcy =link =desc // +arg str =type Str =desc // +arg p =type [BigNum BigNum] =desc // +arg result =type [BigNum BigNum] =desc // // //------------------ PROTO ----------------------------------------------------- ecEcdh +Proto ecEcdh =type fun EcKey Str -> Str =mode function =pkg core.crypto.ec =impl mcy =link =desc // +arg keyAlice =type EcKey =desc // +arg publicBob =type Str =desc // +arg result =type Str =desc // // //------------------ PROTO ----------------------------------------------------- ecKeyCreate +Proto ecKeyCreate =type fun EllipticCurve -> EcKey =mode function =pkg core.crypto.ec =impl mcy =link =desc // +arg curve =type EllipticCurve =desc // +arg result =type EcKey =desc // // //------------------ PROTO ----------------------------------------------------- ecKeyCurveName +Proto ecKeyCurveName =type fun EcKey -> Str =mode function =pkg core.crypto.ec =impl mcy =link =desc // +arg key =type EcKey =desc // +arg result =type Str =desc // // //------------------ PROTO ----------------------------------------------------- ecKeyDump +Proto ecKeyDump =type fun EcKey -> EcKey =mode function =pkg core.crypto.ec =impl mcy =link =desc // +arg key =type EcKey =desc // +arg result =type EcKey =desc // // //------------------ PROTO ----------------------------------------------------- ecKeyFromPrivate +Proto ecKeyFromPrivate =type fun EllipticCurve BigNum -> EcKey =mode function =pkg core.crypto.ec =impl mcy =link =desc // +arg curve =type EllipticCurve =desc // +arg privKey =type BigNum =desc // +arg result =type EcKey =desc // // //------------------ PROTO ----------------------------------------------------- ecKeyFromPublic +Proto ecKeyFromPublic =type fun EllipticCurve Str -> EcKey =mode function =pkg core.crypto.ec =impl mcy =link =desc // +arg curve =type EllipticCurve =desc // +arg pubKey =type Str =desc // +arg result =type EcKey =desc // // //------------------ PROTO ----------------------------------------------------- ecKeyIsPrivate +Proto ecKeyIsPrivate =type fun EcKey -> Bool =mode function =pkg core.crypto.ec =impl mcy =link =desc // +arg key =type EcKey =desc // +arg result =type Bool =desc // // //------------------ PROTO ----------------------------------------------------- ecKeyPrivate +Proto ecKeyPrivate =type fun EcKey -> BigNum =mode function =pkg core.crypto.ec =impl mcy =link =desc // +arg key =type EcKey =desc // +arg result =type BigNum =desc // // //------------------ PROTO ----------------------------------------------------- ecKeyPublic +Proto ecKeyPublic =type fun EcKey -> Str =mode function =pkg core.crypto.ec =impl mcy =link =desc // +arg key =type EcKey =desc // +arg result =type Str =desc // // //------------------ PROTO ----------------------------------------------------- ecMulG +Proto ecMulG =type fun Bool EllipticCurve BigNum -> [BigNum BigNum] =mode function =pkg core.crypto.ec =impl mcy =link =desc // +arg constantTime =type Bool =desc // +arg curve =type EllipticCurve =desc // +arg n =type BigNum =desc // +arg result =type [BigNum BigNum] =desc // // //------------------ PROTO ----------------------------------------------------- ecName +Proto ecName =type fun EllipticCurve -> Str =mode function =pkg core.crypto.ec =impl mcy =link =desc // +arg curve =type EllipticCurve =desc // +arg result =type Str =desc // // //------------------ PROTO ----------------------------------------------------- ecPointFromStr +Proto ecPointFromStr =type fun Str -> [BigNum BigNum] =mode function =pkg core.crypto.ec =impl mcy =link =desc // +arg str =type Str =desc // +arg result =type [BigNum BigNum] =desc // // //------------------ PROTO ----------------------------------------------------- ecRandom +Proto ecRandom =type fun EllipticCurve -> BigNum =mode function =pkg core.crypto.ec =impl mcy =link =desc // +arg curve =type EllipticCurve =desc // +arg result =type BigNum =desc // // //------------------ PROTO ----------------------------------------------------- ecSecp256k1 +Proto ecSecp256k1 =type fun -> EllipticCurve =mode function =pkg core.crypto.ec =impl mcy =link =desc // +arg result =type EllipticCurve =desc // // //------------------ PROTO ----------------------------------------------------- ecSecp256r1 +Proto ecSecp256r1 =type fun -> EllipticCurve =mode function =pkg core.crypto.ec =impl mcy =link =desc // +arg result =type EllipticCurve =desc // // //------------------ PROTO ----------------------------------------------------- ecSecp384r1 +Proto ecSecp384r1 =type fun -> EllipticCurve =mode function =pkg core.crypto.ec =impl mcy =link =desc // +arg result =type EllipticCurve =desc // // //------------------ PROTO ----------------------------------------------------- ecSecp521r1 +Proto ecSecp521r1 =type fun -> EllipticCurve =mode function =pkg core.crypto.ec =impl mcy =link =desc // +arg result =type EllipticCurve =desc // // //------------------ PROTO ----------------------------------------------------- ecSign +Proto ecSign =type fun EcKey a1 (fun a1 -> Str) -> [BigNum BigNum] =mode function =pkg core.crypto.ec =impl mcy =link =desc // +arg key =type EcKey =desc // +arg msg =type a1 =desc // +arg fHash =type fun a1 -> Str =desc // +arg result =type [BigNum BigNum] =desc // // //------------------ PROTO ----------------------------------------------------- ecStrFromPoint +Proto ecStrFromPoint =type fun EllipticCurve [BigNum BigNum] -> Str =mode function =pkg core.crypto.ec =impl mcy =link =desc // +arg curve =type EllipticCurve =desc // +arg p =type [BigNum BigNum] =desc // +arg result =type Str =desc // // //------------------ PROTO ----------------------------------------------------- ecTest +Proto ecTest =type fun EllipticCurve [BigNum BigNum] -> Bool =mode function =pkg core.crypto.ec =impl mcy =link =desc // +arg curve =type EllipticCurve =desc // +arg p =type [BigNum BigNum] =desc // +arg result =type Bool =desc // // //------------------ PROTO ----------------------------------------------------- ecVerify +Proto ecVerify =type fun EcKey [BigNum BigNum] a1 (fun a1 -> Str) -> Bool =mode function =pkg core.crypto.ec =impl mcy =link =desc // +arg key =type EcKey =desc // +arg sign =type [BigNum BigNum] =desc // +arg msg =type a1 =desc // +arg fHash =type fun a1 -> Str =desc // +arg result =type Bool =desc