toxcore-0.2.12: A Tox protocol implementation in Haskell
Safe HaskellNone
LanguageHaskell2010

Tox.Onion.Tunnel

Synopsis

Documentation

newtype OnionIPPort Source #

Onion IP_Port format (fixed 19 bytes).

Constructors

OnionIPPort 

Instances

Instances details
Eq OnionIPPort Source # 
Instance details

Defined in Tox.Onion.Tunnel

Read OnionIPPort Source # 
Instance details

Defined in Tox.Onion.Tunnel

Show OnionIPPort Source # 
Instance details

Defined in Tox.Onion.Tunnel

Generic OnionIPPort Source # 
Instance details

Defined in Tox.Onion.Tunnel

Associated Types

type Rep OnionIPPort :: Type -> Type #

Arbitrary OnionIPPort Source # 
Instance details

Defined in Tox.Onion.Tunnel

Binary OnionIPPort Source # 
Instance details

Defined in Tox.Onion.Tunnel

MessagePack OnionIPPort Source # 
Instance details

Defined in Tox.Onion.Tunnel

type Rep OnionIPPort Source # 
Instance details

Defined in Tox.Onion.Tunnel

type Rep OnionIPPort = D1 ('MetaData "OnionIPPort" "Tox.Onion.Tunnel" "toxcore-0.2.12-inplace" 'True) (C1 ('MetaCons "OnionIPPort" 'PrefixI 'True) (S1 ('MetaSel ('Just "unOnionIPPort") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 SocketAddress)))

data OnionRequest0 Source #

Initial Onion Request (0x80).

Instances

Instances details
Eq OnionRequest0 Source # 
Instance details

Defined in Tox.Onion.Tunnel

Read OnionRequest0 Source # 
Instance details

Defined in Tox.Onion.Tunnel

Show OnionRequest0 Source # 
Instance details

Defined in Tox.Onion.Tunnel

Generic OnionRequest0 Source # 
Instance details

Defined in Tox.Onion.Tunnel

Associated Types

type Rep OnionRequest0 :: Type -> Type #

Arbitrary OnionRequest0 Source # 
Instance details

Defined in Tox.Onion.Tunnel

Binary OnionRequest0 Source # 
Instance details

Defined in Tox.Onion.Tunnel

MessagePack OnionRequest0 Source # 
Instance details

Defined in Tox.Onion.Tunnel

type Rep OnionRequest0 Source # 
Instance details

Defined in Tox.Onion.Tunnel

type Rep OnionRequest0 = D1 ('MetaData "OnionRequest0" "Tox.Onion.Tunnel" "toxcore-0.2.12-inplace" 'False) (C1 ('MetaCons "OnionRequest0" 'PrefixI 'True) (S1 ('MetaSel ('Just "onion0Nonce") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 Nonce) :*: (S1 ('MetaSel ('Just "onion0SenderPublicKey") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 PublicKey) :*: S1 ('MetaSel ('Just "onion0EncryptedPayload") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 CipherText))))

data OnionRequestRelay Source #

Intermediate Onion Request (0x81, 0x82).

Instances

Instances details
Eq OnionRequestRelay Source # 
Instance details

Defined in Tox.Onion.Tunnel

Read OnionRequestRelay Source # 
Instance details

Defined in Tox.Onion.Tunnel

Show OnionRequestRelay Source # 
Instance details

Defined in Tox.Onion.Tunnel

Generic OnionRequestRelay Source # 
Instance details

Defined in Tox.Onion.Tunnel

Associated Types

type Rep OnionRequestRelay :: Type -> Type #

Arbitrary OnionRequestRelay Source # 
Instance details

Defined in Tox.Onion.Tunnel

Binary OnionRequestRelay Source # 
Instance details

Defined in Tox.Onion.Tunnel

MessagePack OnionRequestRelay Source # 
Instance details

Defined in Tox.Onion.Tunnel

type Rep OnionRequestRelay Source # 
Instance details

Defined in Tox.Onion.Tunnel

type Rep OnionRequestRelay = D1 ('MetaData "OnionRequestRelay" "Tox.Onion.Tunnel" "toxcore-0.2.12-inplace" 'False) (C1 ('MetaCons "OnionRequestRelay" 'PrefixI 'True) ((S1 ('MetaSel ('Just "onionRelayNonce") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 Nonce) :*: S1 ('MetaSel ('Just "onionRelayTemporaryKey") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 PublicKey)) :*: (S1 ('MetaSel ('Just "onionRelayEncryptedPayload") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 CipherText) :*: (S1 ('MetaSel ('Just "onionRelayReturnNonce") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 Nonce) :*: S1 ('MetaSel ('Just "onionRelayReturnData") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 CipherText)))))

data OnionRequestPayload Source #

Inner payload of an Onion Request (once decrypted).

Instances

Instances details
Eq OnionRequestPayload Source # 
Instance details

Defined in Tox.Onion.Tunnel

Read OnionRequestPayload Source # 
Instance details

Defined in Tox.Onion.Tunnel

Show OnionRequestPayload Source # 
Instance details

Defined in Tox.Onion.Tunnel

Generic OnionRequestPayload Source # 
Instance details

Defined in Tox.Onion.Tunnel

Associated Types

type Rep OnionRequestPayload :: Type -> Type #

Arbitrary OnionRequestPayload Source # 
Instance details

Defined in Tox.Onion.Tunnel

Binary OnionRequestPayload Source # 
Instance details

Defined in Tox.Onion.Tunnel

MessagePack OnionRequestPayload Source # 
Instance details

Defined in Tox.Onion.Tunnel

type Rep OnionRequestPayload Source # 
Instance details

Defined in Tox.Onion.Tunnel

type Rep OnionRequestPayload = D1 ('MetaData "OnionRequestPayload" "Tox.Onion.Tunnel" "toxcore-0.2.12-inplace" 'False) (C1 ('MetaCons "OnionRequestPayload" 'PrefixI 'True) (S1 ('MetaSel ('Just "onionPayloadDestination") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 OnionIPPort) :*: (S1 ('MetaSel ('Just "onionPayloadTemporaryKey") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 PublicKey) :*: S1 ('MetaSel ('Just "onionPayloadEncryptedPayload") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 CipherText))))

data OnionResponse Source #

Intermediate Onion Response (0x8c, 0x8d, 0x8e).

Instances

Instances details
Eq OnionResponse Source # 
Instance details

Defined in Tox.Onion.Tunnel

Read OnionResponse Source # 
Instance details

Defined in Tox.Onion.Tunnel

Show OnionResponse Source # 
Instance details

Defined in Tox.Onion.Tunnel

Generic OnionResponse Source # 
Instance details

Defined in Tox.Onion.Tunnel

Associated Types

type Rep OnionResponse :: Type -> Type #

Arbitrary OnionResponse Source # 
Instance details

Defined in Tox.Onion.Tunnel

Binary OnionResponse Source # 
Instance details

Defined in Tox.Onion.Tunnel

MessagePack OnionResponse Source # 
Instance details

Defined in Tox.Onion.Tunnel

type Rep OnionResponse Source # 
Instance details

Defined in Tox.Onion.Tunnel

type Rep OnionResponse = D1 ('MetaData "OnionResponse" "Tox.Onion.Tunnel" "toxcore-0.2.12-inplace" 'False) (C1 ('MetaCons "OnionResponse" 'PrefixI 'True) (S1 ('MetaSel ('Just "onionResponseNonce") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 Nonce) :*: (S1 ('MetaSel ('Just "onionResponseEncryptedSendback") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 CipherText) :*: S1 ('MetaSel ('Just "onionResponseData") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedStrict) (Rec0 ByteString))))

wrapOnion0 :: Keyed m => KeyPair -> PublicKey -> Nonce -> OnionRequestPayload -> m OnionRequest0 Source #

Wrap a payload for Onion Request layer 0.

unwrapOnion0 :: Keyed m => KeyPair -> OnionRequest0 -> m (Maybe OnionRequestPayload) Source #

Unwrap an Onion Request layer 0.

wrapOnionRelay :: Keyed m => KeyPair -> PublicKey -> Nonce -> OnionRequestPayload -> Nonce -> CipherText -> m OnionRequestRelay Source #

Wrap an inner payload for intermediate layers.

unwrapOnionRelay :: Keyed m => KeyPair -> OnionRequestRelay -> m (Maybe (OnionRequestPayload, Nonce, CipherText)) Source #

Unwrap an intermediate Onion Request layer.