React Native Encrypted Storage

screenshot of React Native Encrypted Storage
react
react-native

React Native wrapper around EncryptedSharedPreferences and Keychain to provide a secure alternative to Async Storage.

Overview:

The React Native Encrypted Storage is a secure alternative to Async Storage by providing a wrapper around Android's EncryptedSharedPreferences and iOS' Keychain. It addresses the lack of security in Async Storage, making it suitable for storing sensitive data like access tokens and payment information.

Features:

  • Secure Storage: Utilizes Android's EncryptedSharedPreferences and iOS' Keychain for secure storage of sensitive information.
  • Version Compatibility: Supports Android API 21+ (5.0) and iOS 2.0.
  • Error Handling: Provides error codes from native iOS Security framework to aid in debugging.
  • Limitations Awareness: Acknowledges limitations in item size storage, especially on iOS, and clarifies the Keychain persistence behavior on iOS.

Via yarn:

yarn add react-native-encrypted-storage

Via npm:

npm install react-native-encrypted-storage

Linking:

For React Native 0.60+, no additional steps needed due to auto-linking support. For React Native <= 0.59 or special cases on iOS using cocoapods, additional linking may be required.

Summary:

The React Native Encrypted Storage module offers a secure alternative to Async Storage for storing sensitive data in React Native applications. By leveraging Android's EncryptedSharedPreferences and iOS' Keychain, it provides enhanced security features while addressing limitations and compatibility requirements. The ease of installation and usage, along with helpful error handling mechanisms, make it a valuable tool for developers looking to protect their app's sensitive information.

react
React

React is a widely used JavaScript library for building user interfaces and single-page applications. It follows a component-based architecture and uses a virtual DOM to efficiently update and render UI components

react-native
React Native

React Native is a framework for building mobile applications using React and JavaScript. It enables developers to write once and deploy to multiple platforms, including iOS, Android, and the web, while providing a native app-like experience to users.

eslint
Eslint

ESLint is a linter for JavaScript that analyzes code to detect and report on potential problems and errors, as well as enforce consistent code style and best practices, helping developers to write cleaner, more maintainable code.

typescript
Typescript

TypeScript is a superset of JavaScript, providing optional static typing, classes, interfaces, and other features that help developers write more maintainable and scalable code. TypeScript's static typing system can catch errors at compile-time, making it easier to build and maintain large applications.