cardano-crypto-1.3.0: Cryptography primitives for cardano
Safe HaskellSafe-Inferred
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 Key Source # 
Instance details

Defined in Crypto.ECC.Ed25519BIP32

GetDerivationMaterial 'Soft PointCompressed Source # 
Instance details

Defined in Crypto.ECC.Ed25519BIP32

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

Defined in Crypto.Math.Bits

Methods

(.&.) :: FBits n -> FBits n -> FBits n #

(.|.) :: FBits n -> FBits n -> FBits n #

xor :: FBits n -> FBits n -> FBits n #

complement :: FBits n -> FBits n #

shift :: FBits n -> Int -> FBits n #

rotate :: FBits n -> Int -> FBits n #

zeroBits :: FBits n #

bit :: Int -> FBits n #

setBit :: FBits n -> Int -> FBits n #

clearBit :: FBits n -> Int -> FBits n #

complementBit :: FBits n -> Int -> FBits n #

testBit :: FBits n -> Int -> Bool #

bitSizeMaybe :: FBits n -> Maybe Int #

bitSize :: FBits n -> Int #

isSigned :: FBits n -> Bool #

shiftL :: FBits n -> Int -> FBits n #

unsafeShiftL :: FBits n -> Int -> FBits n #

shiftR :: FBits n -> Int -> FBits n #

unsafeShiftR :: FBits n -> Int -> FBits n #

rotateL :: FBits n -> Int -> FBits n #

rotateR :: FBits n -> Int -> FBits n #

popCount :: FBits n -> Int #

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

Defined in Crypto.Math.Bits

Methods

minBound :: FBits n #

maxBound :: FBits n #

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

Defined in Crypto.Math.Bits

Methods

succ :: FBits n -> FBits n #

pred :: FBits n -> FBits n #

toEnum :: Int -> FBits n #

fromEnum :: FBits n -> Int #

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

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

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

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

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

Defined in Crypto.Math.Bits

Methods

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

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

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

negate :: FBits n -> FBits n #

abs :: FBits n -> FBits n #

signum :: FBits n -> FBits n #

fromInteger :: Integer -> FBits n #

Show (FBits n) Source # 
Instance details

Defined in Crypto.Math.Bits

Methods

showsPrec :: Int -> FBits n -> ShowS #

show :: FBits n -> String #

showList :: [FBits n] -> ShowS #

Eq (FBits n) Source # 
Instance details

Defined in Crypto.Math.Bits

Methods

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

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

Ord (FBits n) Source # 
Instance details

Defined in Crypto.Math.Bits

Methods

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

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

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

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

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

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

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

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 #