final class SecretString extends AnyRef
Modified copy from https://github.com/ergoplatform/ergo-appkit SecretString class
Encapsulates secret array of characters (char[]) with proper equality.
The secret data can be erased in memory and not leaked to GC.
Note that SecretString#getData() and SecretString#toStringUnsecure()
will throw a runtime exception, if already erased
Using this class is more secure and safe than using char[] directly.
- Alphabetic
- By Inheritance
- SecretString
- AnyRef
- Any
- Hide All
- Show All
- Public
- Protected
Value Members
- final def !=(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- final def ##: Int
- Definition Classes
- AnyRef → Any
- final def ==(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- final def asInstanceOf[T0]: T0
- Definition Classes
- Any
- def clone(): AnyRef
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.CloneNotSupportedException]) @native()
- final def eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- def equals(obj: AnyRef): Boolean
Throws an exception if
SecretString#_erasedflag is trueThrows an exception if
SecretString#_erasedflag is true- Definition Classes
- SecretString → AnyRef → Any
- Annotations
- @Override()
- def erase(): Unit
Erases secret characters stored in this instance so that they are no longer reside in memory.
Erases secret characters stored in this instance so that they are no longer reside in memory. Sets a flag _erased to true
- def finalize(): Unit
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.Throwable])
- final def getClass(): Class[_ <: AnyRef]
- Definition Classes
- AnyRef → Any
- Annotations
- @native()
- def getData(): Array[Char]
Extracts secret characters as an array.
Extracts secret characters as an array. Throws an exception if
SecretString#_erasedflag is true - def hashCode(): Int
Throws an exception if
SecretString#_erasedflag is trueThrows an exception if
SecretString#_erasedflag is true- Definition Classes
- SecretString → AnyRef → Any
- Annotations
- @Override()
- def isEmpty(): Boolean
Returns true if the string doesn't have characters.
Returns true if the string doesn't have characters. Throws an exception if
SecretString#_erasedflag is true - def isErased(): Boolean
Returns true if the string has been erased.
- final def isInstanceOf[T0]: Boolean
- Definition Classes
- Any
- final def ne(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- final def notify(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native()
- final def notifyAll(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native()
- final def synchronized[T0](arg0: => T0): T0
- Definition Classes
- AnyRef
- def toString(): String
- Definition Classes
- AnyRef → Any
- def toStringUnsecure(): String
Returns unsecured String with secret characters.
Returns unsecured String with secret characters. The secret characters are copied to the new String instance and cannot be erased in memory. So they leak to GC and may remain in memory until overwritten by new data. Usage of this method is discouraged and the method is provided solely to interact with legacy code which keeps secret characters in String. Throws an exception if
SecretString#_erasedflag is true - final def wait(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
- final def wait(arg0: Long, arg1: Int): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
- final def wait(arg0: Long): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException]) @native()