C# Класс Granados.PKI.EllipticCurveFp

Elliptic curve domain parameters over Fp
Наследование: EllipticCurve
Показать файл Открыть проект Примеры использования класса

Открытые свойства

Свойство Тип Описание
G ECPoint
a Granados.Mono.Math.BigInteger
b Granados.Mono.Math.BigInteger
h Granados.Mono.Math.BigInteger
n Granados.Mono.Math.BigInteger
p Granados.Mono.Math.BigInteger

Открытые методы

Метод Описание
EllipticCurveFp ( PublicKeyAlgorithm algorithm, string curveName, BigInteger p, BigInteger a, BigInteger b, ECPoint G, BigInteger n, BigInteger h ) : Granados.Crypto

Constructor

PointAdd ( ECPoint t1, ECPoint t2, bool infinityToNull ) : ECPoint

Calculate point addition

PointMul ( BigInteger k1, BigInteger k2, ECPoint t, bool infinityToNull ) : ECPoint

Calculate point multiplication

PointMul ( BigInteger k, ECPoint t, bool infinityToNull ) : ECPoint

Calculate point multiplication

ValidatePoint ( BigInteger x, BigInteger y ) : bool

Validate if the point satisfies the equation of the elliptic curve.

Приватные методы

Метод Описание
PointAdd ( BigInteger ring, ECPoint p1, ECPoint p2, ECPoint &p3 ) : bool

Point addition over the curve

PointDouble ( BigInteger ring, ECPoint p1, ECPoint &p3 ) : bool

Point dooubling over the curve

PointMul ( BigInteger ring, ECPoint p1, BigInteger k, ECPoint &p2 ) : bool

Point multiplication over the curve

Описание методов

EllipticCurveFp() публичный Метод

Constructor
public EllipticCurveFp ( PublicKeyAlgorithm algorithm, string curveName, BigInteger p, BigInteger a, BigInteger b, ECPoint G, BigInteger n, BigInteger h ) : Granados.Crypto
algorithm PublicKeyAlgorithm public key algorithm which uses this curve
curveName string curve name
p Granados.Mono.Math.BigInteger odd prime
a Granados.Mono.Math.BigInteger curve parameter
b Granados.Mono.Math.BigInteger curve parameter
G ECPoint base point
n Granados.Mono.Math.BigInteger order n of G
h Granados.Mono.Math.BigInteger cofactor
Результат Granados.Crypto

PointAdd() публичный Метод

Calculate point addition
public PointAdd ( ECPoint t1, ECPoint t2, bool infinityToNull ) : ECPoint
t1 ECPoint point
t2 ECPoint point
infinityToNull bool /// if result was point-at-infinity, and this parameter was true, /// null is returned instead of . ///
Результат ECPoint

PointMul() публичный Метод

Calculate point multiplication
public PointMul ( BigInteger k1, BigInteger k2, ECPoint t, bool infinityToNull ) : ECPoint
k1 Granados.Mono.Math.BigInteger scalar
k2 Granados.Mono.Math.BigInteger scalar
t ECPoint point
infinityToNull bool /// if result was point-at-infinity, and this parameter was true, /// null is returned instead of . ///
Результат ECPoint

PointMul() публичный Метод

Calculate point multiplication
public PointMul ( BigInteger k, ECPoint t, bool infinityToNull ) : ECPoint
k Granados.Mono.Math.BigInteger scalar
t ECPoint point
infinityToNull bool /// if result was point-at-infinity, and this parameter was true, /// null is returned instead of . ///
Результат ECPoint

ValidatePoint() публичный Метод

Validate if the point satisfies the equation of the elliptic curve.
public ValidatePoint ( BigInteger x, BigInteger y ) : bool
x Granados.Mono.Math.BigInteger value of X
y Granados.Mono.Math.BigInteger value of Y
Результат bool

Описание свойств

G публичное свойство

Base point
public ECPoint G
Результат ECPoint

a публичное свойство

Curve parameter
public BigInteger,Granados.Mono.Math a
Результат Granados.Mono.Math.BigInteger

b публичное свойство

Curve parameter
public BigInteger,Granados.Mono.Math b
Результат Granados.Mono.Math.BigInteger

h публичное свойство

Cofactor
public BigInteger,Granados.Mono.Math h
Результат Granados.Mono.Math.BigInteger

n публичное свойство

Order n of G
public BigInteger,Granados.Mono.Math n
Результат Granados.Mono.Math.BigInteger

p публичное свойство

Odd prime
public BigInteger,Granados.Mono.Math p
Результат Granados.Mono.Math.BigInteger