Packages

o

net.psforever.crypto

CryptoInterface

object CryptoInterface

Source
CryptoInterface.scala
Linear Supertypes
AnyRef, Any
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. CryptoInterface
  2. AnyRef
  3. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. Protected

Type Members

  1. class CryptoDHState extends IFinalizable
  2. class CryptoState extends IFinalizable
  3. class CryptoStateWithMAC extends CryptoState

Value Members

  1. final def !=(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  2. final def ##: Int
    Definition Classes
    AnyRef → Any
  3. final def ==(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  4. def MD5MAC(key: ByteVector, message: ByteVector, bytesWanted: Int): ByteVector
  5. final val MD5_MAC_SIZE: Int(16)
  6. final val PSCRYPTO_VERSION_MAJOR: Int(1)
  7. final val PSCRYPTO_VERSION_MINOR: Int(1)
  8. final val RC5_BLOCK_SIZE: Int(8)
  9. final def asInstanceOf[T0]: T0
    Definition Classes
    Any
  10. def clone(): AnyRef
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.CloneNotSupportedException]) @native()
  11. final def eq(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  12. def equals(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef → Any
  13. def finalize(): Unit
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.Throwable])
  14. final val fullLibName: String("pscrypto")
  15. val functionsList: List[String]
  16. final def getClass(): Class[_ <: AnyRef]
    Definition Classes
    AnyRef → Any
    Annotations
    @native()
  17. def hashCode(): Int
    Definition Classes
    AnyRef → Any
    Annotations
    @native()
  18. def initialize(): Unit

    Used to initialize the crypto library at runtime.

    Used to initialize the crypto library at runtime. The version is checked and all functions are mapped.

  19. final def isInstanceOf[T0]: Boolean
    Definition Classes
    Any
  20. final val libName: String("pscrypto")
  21. final def ne(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  22. final def notify(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native()
  23. final def notifyAll(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native()
  24. def printEnvironment(): Unit

    Used for debugging object loading

  25. final val psLib: Library

    NOTE: this is a single, global shared library for the entire server's crypto needs

    NOTE: this is a single, global shared library for the entire server's crypto needs

    Unfortunately, access to this object didn't used to be synchronized. I noticed that tests for this module were hanging ("arrive at a shared secret" & "must fail to agree on a secret..."). This heisenbug was responsible for failed Travis test runs and developer issues as well. Using Windows minidumps, I tracked the issue to a single thread deep in pscrypto.dll. It appeared to be executing an EB FE instruction (on Intel x86 this is jmp $-2 or jump to self), which is an infinite loop. The stack trace made little to no sense and after banging my head on the wall for many hours, I assumed that something deep in CryptoPP, the libgcc libraries, or MSVC++ was the cause (or myself). Now all access to pscrypto functions that allocate and deallocate memory (DH_Start, RC5_Init) are synchronized. This *appears* to have fixed the problem.

  26. final def synchronized[T0](arg0: => T0): T0
    Definition Classes
    AnyRef
  27. def toString(): String
    Definition Classes
    AnyRef → Any
  28. def verifyMAC(mac1: ByteVector, mac2: ByteVector): Boolean

    Checks if two Message Authentication Codes are the same in constant time, preventing a timing attack for MAC forgery

    Checks if two Message Authentication Codes are the same in constant time, preventing a timing attack for MAC forgery

    mac1

    A MAC value

    mac2

    Another MAC value

  29. final def wait(): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException])
  30. final def wait(arg0: Long, arg1: Int): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException])
  31. final def wait(arg0: Long): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException]) @native()

Inherited from AnyRef

Inherited from Any

Ungrouped