Object

fr.acinq.eclair.crypto

Sphinx

Related Doc: package crypto

Permalink

object Sphinx extends Logging

Created by fabrice on 13/01/17. see https://github.com/lightningnetwork/lightning-rfc/blob/master/04-onion-routing.md

Linear Supertypes
Logging, AnyRef, Any
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. Sphinx
  2. Logging
  3. AnyRef
  4. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. All

Type Members

  1. case class DecryptedFailurePacket(originNode: PublicKey, failureMessage: FailureMessage) extends Product with Serializable

    Permalink

    A properly decrypted failure from a node in the route.

    A properly decrypted failure from a node in the route.

    originNode

    public key of the node that generated the failure.

    failureMessage

    friendly failure message.

  2. case class DecryptedPacket(payload: ByteVector, nextPacket: wire.OnionRoutingPacket, sharedSecret: ByteVector32) extends Product with Serializable

    Permalink

    Decrypting an onion packet yields a payload for the current node and the encrypted packet for the next node.

    Decrypting an onion packet yields a payload for the current node and the encrypted packet for the next node.

    payload

    decrypted payload for this node.

    nextPacket

    packet for the next node.

    sharedSecret

    shared secret for the sending node, which we will need to return failure messages.

  3. sealed trait OnionRoutingPacket[T <: PacketType] extends AnyRef

    Permalink
  4. case class PacketAndSecrets(packet: wire.OnionRoutingPacket, sharedSecrets: Seq[(ByteVector32, PublicKey)]) extends Product with Serializable

    Permalink

    A encrypted onion packet with all the associated shared secrets.

    A encrypted onion packet with all the associated shared secrets.

    packet

    encrypted onion packet.

    sharedSecrets

    shared secrets (one per node in the route). Known (and needed) only if you're creating the packet. Empty if you're just forwarding the packet to the next node.

Value Members

  1. final def !=(arg0: Any): Boolean

    Permalink
    Definition Classes
    AnyRef → Any
  2. final def ##(): Int

    Permalink
    Definition Classes
    AnyRef → Any
  3. final def ==(arg0: Any): Boolean

    Permalink
    Definition Classes
    AnyRef → Any
  4. object FailurePacket

    Permalink
  5. val MacLength: Int

    Permalink
  6. object PaymentPacket extends OnionRoutingPacket[PaymentPacket]

    Permalink

    A payment onion packet is used when offering an HTLC to a remote node.

  7. object TrampolinePacket extends OnionRoutingPacket[TrampolinePacket]

    Permalink

    A trampoline onion packet is used to defer route construction to trampoline nodes.

    A trampoline onion packet is used to defer route construction to trampoline nodes. It is usually embedded inside a payment onion packet in the final node's payload.

  8. final def asInstanceOf[T0]: T0

    Permalink
    Definition Classes
    Any
  9. def blind(pub: PublicKey, blindingFactors: Seq[ByteVector32]): PublicKey

    Permalink
  10. def blind(pub: PublicKey, blindingFactor: ByteVector32): PublicKey

    Permalink
  11. def clone(): AnyRef

    Permalink
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @HotSpotIntrinsicCandidate() @throws( ... )
  12. def computeBlindingFactor(pub: PublicKey, secret: ByteVector): ByteVector32

    Permalink
  13. def computeEphemeralPublicKeysAndSharedSecrets(sessionKey: PrivateKey, publicKeys: Seq[PublicKey]): (Seq[PublicKey], Seq[ByteVector32])

    Permalink

    Compute the ephemeral public keys and shared secrets for all nodes on the route.

    Compute the ephemeral public keys and shared secrets for all nodes on the route.

    sessionKey

    this node's session key.

    publicKeys

    public keys of each node on the route.

    returns

    a tuple (ephemeral public keys, shared secrets).

  14. def computeSharedSecret(pub: PublicKey, secret: PrivateKey): ByteVector32

    Permalink
  15. def debug(mkr: Marker, msg: ⇒ Any, t: ⇒ Throwable): Unit

    Permalink
    Attributes
    protected
    Definition Classes
    Logging
  16. def debug(msg: ⇒ Any, t: ⇒ Throwable): Unit

    Permalink
    Attributes
    protected
    Definition Classes
    Logging
  17. def debug(msg: ⇒ Any): Unit

    Permalink
    Attributes
    protected
    Definition Classes
    Logging
  18. final def eq(arg0: AnyRef): Boolean

    Permalink
    Definition Classes
    AnyRef
  19. def equals(arg0: Any): Boolean

    Permalink
    Definition Classes
    AnyRef → Any
  20. def error(mkr: Marker, msg: ⇒ Any, t: ⇒ Throwable): Unit

    Permalink
    Attributes
    protected
    Definition Classes
    Logging
  21. def error(msg: ⇒ Any, t: ⇒ Throwable): Unit

    Permalink
    Attributes
    protected
    Definition Classes
    Logging
  22. def error(msg: ⇒ Any): Unit

    Permalink
    Attributes
    protected
    Definition Classes
    Logging
  23. def generateKey(keyType: String, secret: ByteVector32): ByteVector32

    Permalink
  24. def generateKey(keyType: ByteVector, secret: ByteVector32): ByteVector32

    Permalink
  25. def generateStream(key: ByteVector, length: Int): ByteVector

    Permalink
  26. final def getClass(): Class[_]

    Permalink
    Definition Classes
    AnyRef → Any
    Annotations
    @HotSpotIntrinsicCandidate()
  27. def hashCode(): Int

    Permalink
    Definition Classes
    AnyRef → Any
    Annotations
    @HotSpotIntrinsicCandidate()
  28. def info(mkr: Marker, msg: ⇒ Any, t: ⇒ Throwable): Unit

    Permalink
    Attributes
    protected
    Definition Classes
    Logging
  29. def info(msg: ⇒ Any, t: ⇒ Throwable): Unit

    Permalink
    Attributes
    protected
    Definition Classes
    Logging
  30. def info(msg: ⇒ Any): Unit

    Permalink
    Attributes
    protected
    Definition Classes
    Logging
  31. def isDebugEnabled: Boolean

    Permalink
    Attributes
    protected
    Definition Classes
    Logging
  32. def isErrorEnabled: Boolean

    Permalink
    Attributes
    protected
    Definition Classes
    Logging
  33. def isInfoEnabled: Boolean

    Permalink
    Attributes
    protected
    Definition Classes
    Logging
  34. final def isInstanceOf[T0]: Boolean

    Permalink
    Definition Classes
    Any
  35. def isTraceEnabled: Boolean

    Permalink
    Attributes
    protected
    Definition Classes
    Logging
  36. def isWarnEnabled: Boolean

    Permalink
    Attributes
    protected
    Definition Classes
    Logging
  37. def logger: Logger

    Permalink
    Attributes
    protected
    Definition Classes
    Logging
  38. def loggerName: String

    Permalink
    Attributes
    protected
    Definition Classes
    Logging
  39. def mac(key: ByteVector, message: ByteVector): ByteVector32

    Permalink
  40. final def ne(arg0: AnyRef): Boolean

    Permalink
    Definition Classes
    AnyRef
  41. final def notify(): Unit

    Permalink
    Definition Classes
    AnyRef
    Annotations
    @HotSpotIntrinsicCandidate()
  42. final def notifyAll(): Unit

    Permalink
    Definition Classes
    AnyRef
    Annotations
    @HotSpotIntrinsicCandidate()
  43. def peekPayloadLength(payload: ByteVector): Int

    Permalink

    Peek at the first bytes of the per-hop payload to extract its length.

  44. final def synchronized[T0](arg0: ⇒ T0): T0

    Permalink
    Definition Classes
    AnyRef
  45. def toString(): String

    Permalink
    Definition Classes
    AnyRef → Any
  46. def trace(mkr: Marker, msg: ⇒ Any, t: ⇒ Throwable): Unit

    Permalink
    Attributes
    protected
    Definition Classes
    Logging
  47. def trace(msg: ⇒ Any, t: ⇒ Throwable): Unit

    Permalink
    Attributes
    protected
    Definition Classes
    Logging
  48. def trace(msg: ⇒ Any): Unit

    Permalink
    Attributes
    protected
    Definition Classes
    Logging
  49. final def wait(arg0: Long, arg1: Int): Unit

    Permalink
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  50. final def wait(arg0: Long): Unit

    Permalink
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  51. final def wait(): Unit

    Permalink
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  52. def warn(mkr: Marker, msg: ⇒ Any, t: ⇒ Throwable): Unit

    Permalink
    Attributes
    protected
    Definition Classes
    Logging
  53. def warn(msg: ⇒ Any, t: ⇒ Throwable): Unit

    Permalink
    Attributes
    protected
    Definition Classes
    Logging
  54. def warn(msg: ⇒ Any): Unit

    Permalink
    Attributes
    protected
    Definition Classes
    Logging
  55. def zeroes(length: Int): ByteVector

    Permalink

Deprecated Value Members

  1. def finalize(): Unit

    Permalink
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @Deprecated @deprecated @throws( classOf[java.lang.Throwable] )
    Deprecated

    (Since version ) see corresponding Javadoc for more information.

Inherited from Logging

Inherited from AnyRef

Inherited from Any

Ungrouped