symbolic-base-0.1.0.0: ZkFold Symbolic compiler and zero-knowledge proof protocols
Safe HaskellSafe-Inferred
LanguageHaskell2010

ZkFold.Symbolic.Algorithms.RSA

Documentation

sign :: forall keyLen msgLen ctx. RSA keyLen msgLen ctx => ByteString msgLen ctx -> PrivateKey keyLen ctx -> Signature keyLen ctx Source #

verify :: forall keyLen msgLen ctx. RSA keyLen msgLen ctx => ByteString msgLen ctx -> Signature keyLen ctx -> PublicKey keyLen ctx -> Bool ctx Source #

signVar :: forall keyLen msgLen ctx. RSA keyLen msgLen ctx => VarByteString msgLen ctx -> PrivateKey keyLen ctx -> Signature keyLen ctx Source #

verifyVar :: forall keyLen msgLen ctx. RSA keyLen msgLen ctx => VarByteString msgLen ctx -> Signature keyLen ctx -> PublicKey keyLen ctx -> (Bool ctx, ByteString 256 ctx) Source #

type RSA keyLen msgLen ctx = (SHA2 "SHA256" ctx msgLen, KnownNat keyLen, KnownNat (2 * keyLen), KnownRegisters ctx keyLen 'Auto, KnownRegisters ctx (2 * keyLen) 'Auto, KnownNat (Ceil (GetRegisterSize (BaseField ctx) (2 * keyLen) 'Auto) OrdWord), NFData (ctx (Vector keyLen)), NFData (ctx (Vector (NumberOfRegisters (BaseField ctx) keyLen 'Auto))), NFData (ctx (Vector (NumberOfRegisters (BaseField ctx) (2 * keyLen) 'Auto)))) Source #

data PublicKey keyLen ctx Source #

Constructors

PublicKey 

Fields

Instances

Instances details
Generic (PublicKey keyLen context) Source # 
Instance details

Defined in ZkFold.Symbolic.Algorithms.RSA

Associated Types

type Rep (PublicKey keyLen context) :: Type -> Type #

Methods

from :: PublicKey keyLen context -> Rep (PublicKey keyLen context) x #

to :: Rep (PublicKey keyLen context) x -> PublicKey keyLen context #

(Show (context (Vector (NumberOfRegisters (BaseField context) keyLen 'Auto))), Show (context (Vector (NumberOfRegisters (BaseField context) PubExponentSize 'Auto))), Show (BaseField context)) => Show (PublicKey keyLen context) Source # 
Instance details

Defined in ZkFold.Symbolic.Algorithms.RSA

Methods

showsPrec :: Int -> PublicKey keyLen context -> ShowS #

show :: PublicKey keyLen context -> String #

showList :: [PublicKey keyLen context] -> ShowS #

(NFData (context (Vector (NumberOfRegisters (BaseField context) keyLen 'Auto))), NFData (context (Vector (NumberOfRegisters (BaseField context) PubExponentSize 'Auto)))) => NFData (PublicKey keyLen context) Source # 
Instance details

Defined in ZkFold.Symbolic.Algorithms.RSA

Methods

rnf :: PublicKey keyLen context -> () #

(Eq (context (Vector (NumberOfRegisters (BaseField context) keyLen 'Auto))), Eq (context (Vector (NumberOfRegisters (BaseField context) PubExponentSize 'Auto)))) => Eq (PublicKey keyLen context) Source # 
Instance details

Defined in ZkFold.Symbolic.Algorithms.RSA

Methods

(==) :: PublicKey keyLen context -> PublicKey keyLen context -> Bool #

(/=) :: PublicKey keyLen context -> PublicKey keyLen context -> Bool #

(Symbolic ctx, KnownRegisters ctx PubExponentSize 'Auto, KnownRegisters ctx keyLen 'Auto) => SymbolicData (PublicKey keyLen ctx) Source # 
Instance details

Defined in ZkFold.Symbolic.Algorithms.RSA

Associated Types

type Context (PublicKey keyLen ctx) :: (Type -> Type) -> Type Source #

type Support (PublicKey keyLen ctx) Source #

type Layout (PublicKey keyLen ctx) :: Type -> Type Source #

type Payload (PublicKey keyLen ctx) :: Type -> Type Source #

Methods

arithmetize :: PublicKey keyLen ctx -> Support (PublicKey keyLen ctx) -> Context (PublicKey keyLen ctx) (Layout (PublicKey keyLen ctx)) Source #

payload :: PublicKey keyLen ctx -> Support (PublicKey keyLen ctx) -> Payload (PublicKey keyLen ctx) (WitnessField (Context (PublicKey keyLen ctx))) Source #

restore :: Context (PublicKey keyLen ctx) ~ c => (Support (PublicKey keyLen ctx) -> (c (Layout (PublicKey keyLen ctx)), Payload (PublicKey keyLen ctx) (WitnessField c))) -> PublicKey keyLen ctx Source #

(Symbolic ctx, KnownNat keyLen, KnownRegisters ctx PubExponentSize 'Auto, KnownRegisters ctx keyLen 'Auto) => SymbolicInput (PublicKey keyLen ctx) Source # 
Instance details

Defined in ZkFold.Symbolic.Algorithms.RSA

Methods

isValid :: PublicKey keyLen ctx -> Bool (Context (PublicKey keyLen ctx)) Source #

type Rep (PublicKey keyLen context) Source # 
Instance details

Defined in ZkFold.Symbolic.Algorithms.RSA

type Rep (PublicKey keyLen context)
type Context (PublicKey keyLen ctx) Source # 
Instance details

Defined in ZkFold.Symbolic.Algorithms.RSA

type Context (PublicKey keyLen ctx) = GContext (Rep (PublicKey keyLen ctx))
type Layout (PublicKey keyLen ctx) Source # 
Instance details

Defined in ZkFold.Symbolic.Algorithms.RSA

type Layout (PublicKey keyLen ctx) = GLayout (Rep (PublicKey keyLen ctx))
type Payload (PublicKey keyLen ctx) Source # 
Instance details

Defined in ZkFold.Symbolic.Algorithms.RSA

type Payload (PublicKey keyLen ctx) = GPayload (Rep (PublicKey keyLen ctx))
type Support (PublicKey keyLen ctx) Source # 
Instance details

Defined in ZkFold.Symbolic.Algorithms.RSA

type Support (PublicKey keyLen ctx) = GSupport (Rep (PublicKey keyLen ctx))

data PrivateKey keyLen ctx Source #

Constructors

PrivateKey 

Fields

Instances

Instances details
Generic (PrivateKey keyLen context) Source # 
Instance details

Defined in ZkFold.Symbolic.Algorithms.RSA

Associated Types

type Rep (PrivateKey keyLen context) :: Type -> Type #

Methods

from :: PrivateKey keyLen context -> Rep (PrivateKey keyLen context) x #

to :: Rep (PrivateKey keyLen context) x -> PrivateKey keyLen context #

(Show (BaseField context), Show (context (Vector (NumberOfRegisters (BaseField context) keyLen 'Auto)))) => Show (PrivateKey keyLen context) Source # 
Instance details

Defined in ZkFold.Symbolic.Algorithms.RSA

Methods

showsPrec :: Int -> PrivateKey keyLen context -> ShowS #

show :: PrivateKey keyLen context -> String #

showList :: [PrivateKey keyLen context] -> ShowS #

NFData (context (Vector (NumberOfRegisters (BaseField context) keyLen 'Auto))) => NFData (PrivateKey keyLen context) Source # 
Instance details

Defined in ZkFold.Symbolic.Algorithms.RSA

Methods

rnf :: PrivateKey keyLen context -> () #

Eq (context (Vector (NumberOfRegisters (BaseField context) keyLen 'Auto))) => Eq (PrivateKey keyLen context) Source # 
Instance details

Defined in ZkFold.Symbolic.Algorithms.RSA

Methods

(==) :: PrivateKey keyLen context -> PrivateKey keyLen context -> Bool #

(/=) :: PrivateKey keyLen context -> PrivateKey keyLen context -> Bool #

(Symbolic ctx, KnownRegisters ctx keyLen 'Auto) => SymbolicData (PrivateKey keyLen ctx) Source # 
Instance details

Defined in ZkFold.Symbolic.Algorithms.RSA

Associated Types

type Context (PrivateKey keyLen ctx) :: (Type -> Type) -> Type Source #

type Support (PrivateKey keyLen ctx) Source #

type Layout (PrivateKey keyLen ctx) :: Type -> Type Source #

type Payload (PrivateKey keyLen ctx) :: Type -> Type Source #

Methods

arithmetize :: PrivateKey keyLen ctx -> Support (PrivateKey keyLen ctx) -> Context (PrivateKey keyLen ctx) (Layout (PrivateKey keyLen ctx)) Source #

payload :: PrivateKey keyLen ctx -> Support (PrivateKey keyLen ctx) -> Payload (PrivateKey keyLen ctx) (WitnessField (Context (PrivateKey keyLen ctx))) Source #

restore :: Context (PrivateKey keyLen ctx) ~ c => (Support (PrivateKey keyLen ctx) -> (c (Layout (PrivateKey keyLen ctx)), Payload (PrivateKey keyLen ctx) (WitnessField c))) -> PrivateKey keyLen ctx Source #

(Symbolic ctx, KnownNat keyLen, KnownRegisters ctx keyLen 'Auto) => SymbolicInput (PrivateKey keyLen ctx) Source # 
Instance details

Defined in ZkFold.Symbolic.Algorithms.RSA

Methods

isValid :: PrivateKey keyLen ctx -> Bool (Context (PrivateKey keyLen ctx)) Source #

type Rep (PrivateKey keyLen context) Source # 
Instance details

Defined in ZkFold.Symbolic.Algorithms.RSA

type Rep (PrivateKey keyLen context) = D1 ('MetaData "PrivateKey" "ZkFold.Symbolic.Algorithms.RSA" "symbolic-base-0.1.0.0-inplace" 'False) (C1 ('MetaCons "PrivateKey" 'PrefixI 'True) (S1 ('MetaSel ('Just "prvD") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (UInt keyLen 'Auto context)) :*: S1 ('MetaSel ('Just "prvN") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (UInt keyLen 'Auto context))))
type Context (PrivateKey keyLen ctx) Source # 
Instance details

Defined in ZkFold.Symbolic.Algorithms.RSA

type Context (PrivateKey keyLen ctx) = GContext (Rep (PrivateKey keyLen ctx))
type Layout (PrivateKey keyLen ctx) Source # 
Instance details

Defined in ZkFold.Symbolic.Algorithms.RSA

type Layout (PrivateKey keyLen ctx) = GLayout (Rep (PrivateKey keyLen ctx))
type Payload (PrivateKey keyLen ctx) Source # 
Instance details

Defined in ZkFold.Symbolic.Algorithms.RSA

type Payload (PrivateKey keyLen ctx) = GPayload (Rep (PrivateKey keyLen ctx))
type Support (PrivateKey keyLen ctx) Source # 
Instance details

Defined in ZkFold.Symbolic.Algorithms.RSA

type Support (PrivateKey keyLen ctx) = GSupport (Rep (PrivateKey keyLen ctx))

type Signature keyLen ctx = ByteString keyLen ctx Source #