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
- All
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( ... ) @native()
-
final
def
eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
-
def
equals(obj: Any): Boolean
Throws an exception if
SecretString#_erasedflag is trueThrows an exception if
SecretString#_erasedflag is true- Definition Classes
- SecretString → AnyRef → Any
-
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[_]
- 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
-
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( ... )
-
final
def
wait(arg0: Long, arg1: Int): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
final
def
wait(arg0: Long): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... ) @native()