Shadowrun: Awakened 29 September 2011 - Build 871
Public Member Functions | Protected Member Functions | Protected Attributes | Private Attributes | Static Private Attributes
cat::BigTwistedEdwards Class Reference

#include <BigTwistedEdwards.hpp>

Inheritance diagram for cat::BigTwistedEdwards:

List of all members.

Public Member Functions

 BigTwistedEdwards (int regs, int bits, int C, int D, const u8 *Q, const u8 *GenPt)
Leg GetCurveD ()
const Leg * GetCurveQ ()
const Leg * GetGenerator ()
bool IsAffineIdentity (const Leg *in)
bool LoadVerifyAffineXY (const void *in_x, const void *in_y, Leg *out)
void PtAdd (const Leg *in_a, const Leg *in_b, Leg *out)
void PtCopy (const Leg *in, Leg *out)
void PtDouble (const Leg *in, Leg *out)
void PtDoubleZ1 (const Leg *in, Leg *out)
void PtEAdd (const Leg *in_a, const Leg *in_b, Leg *out)
void PtEDouble (const Leg *in, Leg *out)
void PtEDoubleZ1 (const Leg *in, Leg *out)
void PtESubtract (const Leg *in_a, const Leg *in_b, Leg *out)
void PtFillRandomX (IRandom *prng, Leg *out)
void PtGenerate (IRandom *prng, Leg *out)
void PtIdentity (Leg *inout)
int PtLegs ()
void PtMultiply (const Leg *in_p, const Leg *in_k, u8 msb_k, Leg *out)
void PtMultiply (const Leg *in_precomp, int w, const Leg *in_k, u8 msb_k, Leg *out)
void PtMultiplyPrecomp (const Leg *in, int w, Leg *table)
Leg * PtMultiplyPrecompAlloc (int w)
void PtNegate (const Leg *in, Leg *out)
void PtNormalize (const Leg *in, Leg *out)
void PtSiMultiply (const Leg *precomp_p, const Leg *precomp_q, int w, const Leg *in_k, u8 msb_k, const Leg *in_l, u8 msb_l, Leg *out)
void PtSolveAffineY (Leg *inout)
void PtSubtract (const Leg *in_a, const Leg *in_b, Leg *out)
void PtUnpack (Leg *inout)
bool PtValidAffine (const Leg *in)
void RefMul (const Leg *in_p, const Leg *in_k, u8 msb_k, Leg *out)
void SaveAffineX (const Leg *in, void *out_x)
void SaveAffineXY (const Leg *in, void *out_x, void *out_y)
void SaveProjectiveXY (const Leg *in, void *out_x, void *out_y)

Protected Member Functions

void PtPrecompAddSub (const Leg *in_a, const Leg *in_b, Leg *sum, Leg *diff, int neg_offset)

Protected Attributes

Leg curve_d

Private Attributes

Leg * A
Leg * B
Leg * C
Leg * CurveQ
Leg * D
Leg * E
Leg * F
Leg * G
Leg * Generator
Leg * H
int POINT_STRIDE
int te_regs
Leg * TempPt
int TOFF
int YOFF
int ZOFF

Static Private Attributes

static const int POINT_REGS = 4
static const int PRECOMP_NEG_OFFSET = PRECOMP_POINTS / 2
static const int PRECOMP_POINTS = 1 << (WINDOW_BITS-1)
static const int TE_OVERHEAD = (1 + PRECOMP_POINTS) * POINT_REGS + 9 + POINT_REGS * 2
static const int WINDOW_BITS = 6
static const int XOFF = 0

Detailed Description

Definition at line 67 of file BigTwistedEdwards.hpp.


Constructor & Destructor Documentation

cat::BigTwistedEdwards::BigTwistedEdwards ( int  regs,
int  bits,
int  C,
int  D,
const u8 Q,
const u8 GenPt 
)

Member Function Documentation

Leg cat::BigTwistedEdwards::GetCurveD ( ) [inline]

Definition at line 96 of file BigTwistedEdwards.hpp.

References curve_d.

{ return curve_d; }
const Leg* cat::BigTwistedEdwards::GetCurveQ ( ) [inline]

Definition at line 97 of file BigTwistedEdwards.hpp.

References CurveQ.

{ return CurveQ; }
const Leg* cat::BigTwistedEdwards::GetGenerator ( ) [inline]

Definition at line 98 of file BigTwistedEdwards.hpp.

References Generator.

{ return Generator; }
bool cat::BigTwistedEdwards::IsAffineIdentity ( const Leg *  in)
bool cat::BigTwistedEdwards::LoadVerifyAffineXY ( const void *  in_x,
const void *  in_y,
Leg *  out 
)
void cat::BigTwistedEdwards::PtAdd ( const Leg *  in_a,
const Leg *  in_b,
Leg *  out 
)
void cat::BigTwistedEdwards::PtCopy ( const Leg *  in,
Leg *  out 
)
void cat::BigTwistedEdwards::PtDouble ( const Leg *  in,
Leg *  out 
)
void cat::BigTwistedEdwards::PtDoubleZ1 ( const Leg *  in,
Leg *  out 
)
void cat::BigTwistedEdwards::PtEAdd ( const Leg *  in_a,
const Leg *  in_b,
Leg *  out 
)
void cat::BigTwistedEdwards::PtEDouble ( const Leg *  in,
Leg *  out 
)
void cat::BigTwistedEdwards::PtEDoubleZ1 ( const Leg *  in,
Leg *  out 
)
void cat::BigTwistedEdwards::PtESubtract ( const Leg *  in_a,
const Leg *  in_b,
Leg *  out 
)
void cat::BigTwistedEdwards::PtFillRandomX ( IRandom prng,
Leg *  out 
)
void cat::BigTwistedEdwards::PtGenerate ( IRandom prng,
Leg *  out 
)
void cat::BigTwistedEdwards::PtIdentity ( Leg *  inout)
int cat::BigTwistedEdwards::PtLegs ( ) [inline]

Definition at line 94 of file BigTwistedEdwards.hpp.

References cat::BigRTL::Legs(), and POINT_REGS.

{ return Legs() * POINT_REGS; }
void cat::BigTwistedEdwards::PtMultiply ( const Leg *  in_p,
const Leg *  in_k,
u8  msb_k,
Leg *  out 
)
void cat::BigTwistedEdwards::PtMultiply ( const Leg *  in_precomp,
int  w,
const Leg *  in_k,
u8  msb_k,
Leg *  out 
)
void cat::BigTwistedEdwards::PtMultiplyPrecomp ( const Leg *  in,
int  w,
Leg *  table 
)
Leg* cat::BigTwistedEdwards::PtMultiplyPrecompAlloc ( int  w)
void cat::BigTwistedEdwards::PtNegate ( const Leg *  in,
Leg *  out 
)
void cat::BigTwistedEdwards::PtNormalize ( const Leg *  in,
Leg *  out 
)
void cat::BigTwistedEdwards::PtPrecompAddSub ( const Leg *  in_a,
const Leg *  in_b,
Leg *  sum,
Leg *  diff,
int  neg_offset 
) [protected]
void cat::BigTwistedEdwards::PtSiMultiply ( const Leg *  precomp_p,
const Leg *  precomp_q,
int  w,
const Leg *  in_k,
u8  msb_k,
const Leg *  in_l,
u8  msb_l,
Leg *  out 
)
void cat::BigTwistedEdwards::PtSolveAffineY ( Leg *  inout)
void cat::BigTwistedEdwards::PtSubtract ( const Leg *  in_a,
const Leg *  in_b,
Leg *  out 
)
void cat::BigTwistedEdwards::PtUnpack ( Leg *  inout)
bool cat::BigTwistedEdwards::PtValidAffine ( const Leg *  in)
void cat::BigTwistedEdwards::RefMul ( const Leg *  in_p,
const Leg *  in_k,
u8  msb_k,
Leg *  out 
)
void cat::BigTwistedEdwards::SaveAffineX ( const Leg *  in,
void *  out_x 
)
void cat::BigTwistedEdwards::SaveAffineXY ( const Leg *  in,
void *  out_x,
void *  out_y 
)
void cat::BigTwistedEdwards::SaveProjectiveXY ( const Leg *  in,
void *  out_x,
void *  out_y 
)

Member Data Documentation

Leg* cat::BigTwistedEdwards::A [private]

Definition at line 82 of file BigTwistedEdwards.hpp.

Leg * cat::BigTwistedEdwards::B [private]

Definition at line 82 of file BigTwistedEdwards.hpp.

Leg * cat::BigTwistedEdwards::C [private]

Definition at line 82 of file BigTwistedEdwards.hpp.

Definition at line 86 of file BigTwistedEdwards.hpp.

Referenced by GetCurveD().

Definition at line 82 of file BigTwistedEdwards.hpp.

Referenced by GetCurveQ().

Leg * cat::BigTwistedEdwards::D [private]

Definition at line 82 of file BigTwistedEdwards.hpp.

Leg * cat::BigTwistedEdwards::E [private]

Definition at line 82 of file BigTwistedEdwards.hpp.

Leg * cat::BigTwistedEdwards::F [private]

Definition at line 82 of file BigTwistedEdwards.hpp.

Leg * cat::BigTwistedEdwards::G [private]

Definition at line 82 of file BigTwistedEdwards.hpp.

Definition at line 82 of file BigTwistedEdwards.hpp.

Referenced by GetGenerator().

Leg * cat::BigTwistedEdwards::H [private]

Definition at line 82 of file BigTwistedEdwards.hpp.

const int cat::BigTwistedEdwards::POINT_REGS = 4 [static, private]

Definition at line 69 of file BigTwistedEdwards.hpp.

Referenced by PtLegs().

Definition at line 71 of file BigTwistedEdwards.hpp.

Definition at line 76 of file BigTwistedEdwards.hpp.

const int cat::BigTwistedEdwards::PRECOMP_POINTS = 1 << (WINDOW_BITS-1) [static, private]

Definition at line 75 of file BigTwistedEdwards.hpp.

const int cat::BigTwistedEdwards::TE_OVERHEAD = (1 + PRECOMP_POINTS) * POINT_REGS + 9 + POINT_REGS * 2 [static, private]

Definition at line 78 of file BigTwistedEdwards.hpp.

Definition at line 79 of file BigTwistedEdwards.hpp.

Definition at line 83 of file BigTwistedEdwards.hpp.

Definition at line 71 of file BigTwistedEdwards.hpp.

const int cat::BigTwistedEdwards::WINDOW_BITS = 6 [static, private]

Definition at line 74 of file BigTwistedEdwards.hpp.

const int cat::BigTwistedEdwards::XOFF = 0 [static, private]

Definition at line 70 of file BigTwistedEdwards.hpp.

Definition at line 71 of file BigTwistedEdwards.hpp.

Definition at line 71 of file BigTwistedEdwards.hpp.


The documentation for this class was generated from the following file:

Copyright © 2007-2010 by The Shadowrun: Awakened Team. This work is licensed under the GNU Lesser General Public License 3.

GNU Lesser General Public License 3 Sourceforge.net