How to Migrate from Raivo OTP
I'll get straight to the point. Raivo was sold, many people want alternatives. Check out this thread if curious: https://discuss.privacyguides.net/t/remove-raivo-otp-ios-mfa/13305
All of the below options are open source.
iOS & Android: 2FAS
This one is easy: just export from Raivo, then use the built-in function in 2FAS.
iOS: Tofu
There is no import option, but you can manually move your tokens over by getting the seed from Raivo.
- Export from Raivo to JSON
- Securely transfer a list of your seeds so that you can easily copy and paste into Tofu. Standard Notes would be an easy, free, and secure (E2EE) way to do this.
- Quick way I would get the list: use PowerShell to get the content of the .json with
get-content
, put that into a variable, and then just Search-String:
- Quick way I would get the list: use PowerShell to get the content of the .json with
$raivo_json_content.Split(',') | where { $_.IndexOf("secret") -ne -1 }
Now you can easily copy-paste seed entries into Tofu.
Android: Aegis
(No, it is not an iOS offering. But I switched from iOS to GrapheneOS recently, and this part took some figuring out; I was not at all familiar with jq
. )
Here's how to migrate smoothly:
- Export from Raivo to JSON.
- Install
jq
on your computer. - Use the following to translate between the Raivo JSON format and the Aegis format (leave out the UUID field so that Aegis generates it):
cat raivo-otp-export.json | jq '[.[] | { type: .kind | ascii_downcase, name: .account, issuer, note: "", favorite: false, icon: null, info: { secret, algo: .algorithm, digits: .digits | tonumber, period: .timer | tonumber } }]'
- There's probably a better way to do this part, but when I transferred I exported from Aegis, then replaced the TOTP objects with what I got from
jq
above. - Import, and you are good. I suggest downloading Aegis icons (https://aegis-icons.github.io/) and enjoying those, too.
(Important -- Clean up any unencrypted .json files with shred
.)