Copyright | (c) axionbuster 2025 |
---|---|
License | BSD-3-Clause |
Safe Haskell | None |
Language | GHC2021 |
Provides cryptographic functionality required by the Minecraft protocol, including AES encryption/decryption, RSA operations, and server-specific hashing utilities.
Synopsis
- data AES (mode :: Mode)
- data Mode
- aesnew :: AESClass mode => ByteString -> IO (AES mode)
- aesupdate :: AESClass mode => AES mode -> ByteString -> IO ByteString
- data RSA
- rsanew :: Int -> IO RSA
- rsaup :: RSAClass mode => RSA -> ByteString -> IO ByteString
- rsaspki :: RSA -> IO ByteString
- hashservnam :: ByteString -> ByteString -> ByteString -> IO ByteString
- newtype Error = Error String
- class AESClass (mode :: Mode)
- class RSAClass (mode :: Mode)
- data ByteString
AES
encryption/decryption mode
Instances
Data Mode Source # | |
Defined in M.Crypto gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Mode -> c Mode # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c Mode # dataTypeOf :: Mode -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c Mode) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c Mode) # gmapT :: (forall b. Data b => b -> b) -> Mode -> Mode # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Mode -> r # gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Mode -> r # gmapQ :: (forall d. Data d => d -> u) -> Mode -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> Mode -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> Mode -> m Mode # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Mode -> m Mode # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Mode -> m Mode # | |
Bounded Mode Source # | |
Enum Mode Source # | |
Generic Mode Source # | |
Read Mode Source # | |
Show Mode Source # | |
Eq Mode Source # | |
type Rep Mode Source # | |
aesupdate :: AESClass mode => AES mode -> ByteString -> IO ByteString Source #
either encrypt or decrypt a message
RSA
RSA pkey
rsaup :: RSAClass mode => RSA -> ByteString -> IO ByteString Source #
either encrypt or decrypt a message
rsaspki :: RSA -> IO ByteString Source #
write the SubjectPublicKeyInfo to a ByteString
Hash
:: ByteString | server id |
-> ByteString | shared secret |
-> ByteString | verify token |
-> IO ByteString | SHA1 hash (20 bytes) |
generate a SHA1 hash of the server name
General
error type
Instances
Data Error Source # | |
Defined in M.Crypto gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Error -> c Error # gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c Error # dataTypeOf :: Error -> DataType # dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c Error) # dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c Error) # gmapT :: (forall b. Data b => b -> b) -> Error -> Error # gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Error -> r # gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Error -> r # gmapQ :: (forall d. Data d => d -> u) -> Error -> [u] # gmapQi :: Int -> (forall d. Data d => d -> u) -> Error -> u # gmapM :: Monad m => (forall d. Data d => d -> m d) -> Error -> m Error # gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Error -> m Error # gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Error -> m Error # | |
Exception Error Source # | |
Defined in M.Crypto toException :: Error -> SomeException # fromException :: SomeException -> Maybe Error # displayException :: Error -> String # | |
Generic Error Source # | |
Show Error Source # | |
Eq Error Source # | |
type Rep Error Source # | |
class AESClass (mode :: Mode) Source #
aesnew_, aesupdate_
Instances
AESClass 'Decrypt Source # | |
Defined in M.Crypto aesnew_ :: AESCtor aesupdate_ :: AESUpdate aesnew :: ByteString -> IO (AES 'Decrypt) Source # aesupdate :: AES 'Decrypt -> ByteString -> IO ByteString Source # | |
AESClass 'Encrypt Source # | |
Defined in M.Crypto aesnew_ :: AESCtor aesupdate_ :: AESUpdate aesnew :: ByteString -> IO (AES 'Encrypt) Source # aesupdate :: AES 'Encrypt -> ByteString -> IO ByteString Source # |
class RSAClass (mode :: Mode) Source #
rsaup_
Re-exports
data ByteString #
A space-efficient representation of a Word8
vector, supporting many
efficient operations.
A ByteString
contains 8-bit bytes, or by using the operations from
Data.ByteString.Char8 it can be interpreted as containing 8-bit
characters.