React Native IPSec VPN Module
npm install react-native-vpn-ipsecPlugin can be installed using npm
With yarn:$ yarn add react-native-vpn-ipsec --save
Or with npm:$ npm install react-native-vpn-ipsec --save
on react native >60 no need to do anything but for manualing installation run the code below
$ react-native link react-native-vpn-ipsec
To run example:
- make sure the module folder has no node_modules
- install the dependencies on the example folder using yarn or npm i
- run the project:
```
npx react-native run-android
`javascript
import { saveConfig, prepare, connect } from "react-native-vpn-ipsec";
...
useEffect(() => {
prepare();
}); /// or use componentDidmount in case of a class component
...
connect(name, address, username, password, secret, disconnectOnSleep)
saveConfig(name, address, username, password, secret)
``
| Name | arguments | returns | Description |
| ---------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------- | ----------------------------------------------------------------------------------------------------------- |
| prepare | None | Promise
IOS: This will listen for status change on vpn |
| connect | address: string (address of VPN)
username: string (username of VPN's credentials)
password: string (username of VPN's credentials)
vpnType: string \| undefined (Android only, not implemented yet)
mtu: number \| undefiend (Android only, VPN's maximum transmission unit)
| Promise
| getCurrentState | None | Promise
| getCharonErrorState (Android only) | None | Promise
| disconnect | None | Promise
| onStateChangedListener | callback: (state: { state: VpnState; charonState: CharonErrorState }) => void | EmitterSubscription | Will call the callback on state change |
| removeOnStateChangeListener | stateChangedEvent: EmitterSubscription | void | Remove the state change listener |
| Name | Values | Description |
| ---------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ----------------- |
| VpnState | disconnected = 0 (VPN is disconnected)
connecting = 1 (VPN is connecting)
connected = 2 (VPN is connected)
disconnecting = 3 (VPN is disconnecting)
genericError = 4 (VPN encountered an error charon state on android to find out the error) | VPN current state |
| CharonErrorState | NO_ERROR = 0 (VPN has no error)
AUTH_FAILED = 1 (Wrong credentials)
PEER_AUTH_FAILED = 2
LOOKUP_FAILED = 3 (Wrong VPN URL)
UNREACHABLE = 4 (VPN URL is unreachable)
GENERIC_ERROR = 5
PASSWORD_MISSING = 6 (No password has been provided)
CERTIFICATE_UNAVAILABLE = 7 (Certification has not been provided)
UNDEFINED = 8 (Unknown error) | VPN Error |