Each Virgil SDK includes a persistent storage mechanism that allows developers to store users' private keys on their devices. It is highly recommended that the private key is protected with password before it is persisted.
The following is the list of key storage backends used by default by each SDK:
- PHP: file system
- Node.js: file system
- Java: file system
- Ruby: file system
- Python: file system
- Swift: Keychain
- Objective-C: Keychain
- Go: file system
- C#/.NET: Isolated Storage that is encrypted for current user.
However, you can provide your own private key storage mechanism and Virgil SDK will use that.