cardano-crypto-1.1.0: Cryptography primitives for cardano
Safe HaskellNone
LanguageHaskell2010

Crypto.Math.Bits

Synopsis

Documentation

data FBits (n :: Nat) Source #

Finite Bits

Sadly Bits is taken by Bits operation

Constructors

FBits 

Fields

Instances

Instances details
GetDerivationMaterial 'Hard Key Source # 
Instance details

Defined in Crypto.ECC.Ed25519BIP32

GetDerivationMaterial 'Soft PointCompressed Source # 
Instance details

Defined in Crypto.ECC.Ed25519BIP32

GetDerivationMaterial 'Soft Key Source # 
Instance details

Defined in Crypto.ECC.Ed25519BIP32

SizeValid n => Bounded (FBits n) Source # 
Instance details

Defined in Crypto.Math.Bits

SizeValid n => Enum (FBits n) Source # 
Instance details

Defined in Crypto.Math.Bits

Methods

succ :: FBits n -> FBits n Source #

pred :: FBits n -> FBits n Source #

toEnum :: Int -> FBits n Source #

fromEnum :: FBits n -> Int Source #

enumFrom :: FBits n -> [FBits n] Source #

enumFromThen :: FBits n -> FBits n -> [FBits n] Source #

enumFromTo :: FBits n -> FBits n -> [FBits n] Source #

enumFromThenTo :: FBits n -> FBits n -> FBits n -> [FBits n] Source #

Eq (FBits n) Source # 
Instance details

Defined in Crypto.Math.Bits

Methods

(==) :: FBits n -> FBits n -> Bool Source #

(/=) :: FBits n -> FBits n -> Bool Source #

SizeValid n => Num (FBits n) Source # 
Instance details

Defined in Crypto.Math.Bits

Methods

(+) :: FBits n -> FBits n -> FBits n Source #

(-) :: FBits n -> FBits n -> FBits n Source #

(*) :: FBits n -> FBits n -> FBits n Source #

negate :: FBits n -> FBits n Source #

abs :: FBits n -> FBits n Source #

signum :: FBits n -> FBits n Source #

fromInteger :: Integer -> FBits n Source #

Ord (FBits n) Source # 
Instance details

Defined in Crypto.Math.Bits

Methods

compare :: FBits n -> FBits n -> Ordering Source #

(<) :: FBits n -> FBits n -> Bool Source #

(<=) :: FBits n -> FBits n -> Bool Source #

(>) :: FBits n -> FBits n -> Bool Source #

(>=) :: FBits n -> FBits n -> Bool Source #

max :: FBits n -> FBits n -> FBits n Source #

min :: FBits n -> FBits n -> FBits n Source #

Show (FBits n) Source # 
Instance details

Defined in Crypto.Math.Bits

SizeValid n => Bits (FBits n) Source # 
Instance details

Defined in Crypto.Math.Bits

data FBitsK Source #

Constructors

FBitsK (forall n. (KnownNat n, SizeValid n) => FBits n) 

type SizeValid n = (KnownNat n, 1 <= n) Source #

splitHalf :: forall m n. (SizeValid n, (n * 2) ~ m) => FBits m -> (FBits n, FBits n) Source #

append :: forall m n r. (SizeValid m, SizeValid n, SizeValid r, (m + n) ~ r) => FBits n -> FBits m -> FBits r Source #

Append 2 FBits together where the left member is shifted to make room for the right element.

e.g. append (0x1 :: FBits 1) (0x70 :: FBits 7) = 0xf0 :: FBits 8

dropBitsOnRight :: forall a b diff. (KnownNat diff, b <= a, SizeValid a, SizeValid b, (a - b) ~ diff) => FBits a -> FBits b Source #

dropBitsOnLeft :: forall a b. (KnownNat b, b <= a, SizeValid a, SizeValid b) => FBits a -> FBits b Source #