OpenKeychain is an OpenPGP implementation for Android.

Related tags

App android openpgp
Overview

WARNING: This software is no longer actively developed. We will still apply security fixes where reported, and do basic maintenance work, but no new features or will be worked on. We will try to consider and merge contributions where possible.

OpenKeychain (for Android)

OpenKeychain is an OpenPGP implementation for Android.
For a more detailed description and installation instructions go to https://www.openkeychain.org .

Get it on F-Droid Get it on Google Play

Branches

  • The development of OpenKeychain happens in the "master" branch.
  • For every release a new branch, e.g., "3.2-fixes" is created to backport fixes from "master"

How to help the project?

Translate the application

Translations are managed at Transifex, please contribute there at https://www.transifex.com/projects/p/open-keychain/

Contribute Code

  1. Lookout for interesting issues on Github. We have tagged issues were we explicitly like to see contributions: https://github.com/open-keychain/open-keychain/labels/help%20wanted
  2. Read this README, especially the notes about coding style
  3. Fork OpenKeychain and contribute code (the best part 😎 )
  4. Open a pull request on Github. We will help with occurring problems and merge your changes back into the main project.
  5. PROFIT

For bigger changes

  1. Join the development mailinglist at https://lists.riseup.net/www/subscribe/openkeychain
  2. Propose bigger changes and discuss the consequences

I am happy about every code contribution and appreciate your effort to help us developing OpenKeychain!

Development

Development mailinglist at https://lists.riseup.net/www/subscribe/openkeychain

Build with Gradle

  1. Clone the project from GitHub
  2. Get all external submodules with git submodule update --init --recursive
  3. Have Android SDK "tools", "platform-tools", and "build-tools" directories in your PATH (http://developer.android.com/sdk/index.html)
  4. Open the Android SDK Manager (shell command: android). Expand the Tools directory and select "Android SDK Build-tools (Version 27.0.3)". Expand the Extras directory and install "Android Support Library", as well as "Local Maven repository for Support Libraries" Select SDK Platform for API levels 27.
  5. Export ANDROID_HOME pointing to your Android SDK
  6. Execute ./gradlew assembleFdroidDebug
  7. You can install the app with adb install -r OpenKeychain/build/outputs/apk/OpenKeychain-fdroid-debug.apk

The "google" flavor is only used to include donations via Play Store, for development the "fdroid" flavor should be used.

Run Tests

  1. Use OpenJDK instead of Oracle JDK
  2. Execute ./gradlew clean testFdroidDebugUnitTest --continue

Run Jacoco Test Coverage

  1. Use OpenJDK instead of Oracle JDK
  2. Execute ./gradlew clean testFdroidDebugUnitTest jacocoTestReport
  3. Report is here: OpenKeychain/build/reports/jacoco/jacocoTestReport/html/index.html

Development with Android Studio

We are using the newest Android Studio for development. Development with Eclipse is currently not possible because we are using the new project structure.

  1. Clone the project from Github
  2. Get all external submodules with git submodule update --init --recursive
  3. From Android Studio: File -> Import Project -> Select the cloned top folder

Libraries

Bouncy Castle

OpenKeychain uses a forked version with some small changes. These changes will been sent to Bouncy Castle.

see

Bouncy Castle resources

Documentation

Build System

We try to make our builds as reproducible/deterministic as possible.

Update Gradle version

  • Always use a fixed Android Gradle plugin version not a dynamic one, e.g. 0.7.3 instead of 0.7.+ (allows offline builds without lookups for new versions, also some minor Android plugin versions had serious issues, i.e. 0.7.2 and 0.8.1)
  • Update every build.gradle file with the new gradle version and/or gradle plugin version
    • build.gradle
    • OpenKeychain/build.gradle
  • run ./gradlew wrapper twice to update gradle and download the new gradle jar file
  • commit the corresponding Gradle wrapper to the repository (allows easy building for new contributors without the need to install the required Gradle version using a package manager)

Update SDK and Build Tools

  • Change SDK and Build Tools in git submodules "openkeychain-api-lib" and "openpgp-api-lib" manually. They should also build on their own without the ext variables.

Update library

  • You can check for library updates with ``./gradlew dependencyUpdates -Drevision=release

Add new library

  • You can add the library as a Maven dependency or as a git submodule (if patches are required) in the "extern" folder.
  • You can get all transitive dependencies with ./gradlew -q dependencies OpenKeychain:dependencies
  • If added as a git submodule, change the compileSdkVersion in build.gradle to use the variables from the root project:
android {
    compileSdkVersion rootProject.ext.compileSdkVersion
}
  • You can check for wrong compileSdkVersion by find -name build.gradle | xargs grep compileSdkVersion

Slow Gradle?

Error:Configuration with name 'default' not found.

Gradle project dependencies are missing. Do a git submodule init && git submodule update

Build on Mac OS X fails?

Try exporting JAVA_TOOL_OPTIONS="-Dfile.encoding=UTF8"

Translations

Translations are hosted on Transifex, which is configured by ".tx/config".

  1. To pull newest translations install transifex client (e.g. apt-get install transifex-client)
  2. Config Transifex client with "~/.transifexrc"
  3. Go into root folder of git repo
  4. execute tx pull -af --skip

see http://help.transifex.net/features/client/index.html#user-client

Coding Style

Code

  • Indentation: 4 spaces, no tabs.
  • Maximum line width for code and comments: 100.
  • Opening braces don't go on their own line.
  • Field names: Non-public, non-static fields start with m.
  • Acronyms are words: Treat acronyms as words in names, yielding !XmlHttpRequest, getUrl(), etc.
  • Fully Qualify Imports: Do not use wildcard-imports such as import foo.*;
  • Android Studio warnings should be fixed, or suppressed if they are incorrect.

The full coding style can be found at http://source.android.com/source/code-style.html

Automated syntax check with CheckStyle

Linux

  1. Paste the tools/checkstyle.xml file to ~/.AndroidStudioPreview/config/codestyles/
  2. Go to Settings > Code Style > Java, select OpenPgpChecker, as well as Code Style > XML and select OpenPgpChecker again.
  3. Start code inspection and see the results by selecting Analyze > Inspect Code from Android-Studio or you can directly run checkstyle via cli with .tools/checkstyle. Make sure it's executable first.

Mac OSX

  1. Paste the tools/checkstyle.xml file to ~/Library/Preferences/AndroidStudioPreview/codestyles
  2. Go to Preferences > Code Style > Java, select OpenPgpChecker, as well as Code Style > XML and select OpenPgpChecker again.
  3. Start code inspection and see the results by selecting Analyze > Inspect Code from Android-Studio or you can directly run checkstyle via cli with .tools/checkstyle. Make sure it's executable first.

Windows

  1. Paste the tools/checkstyle.xml file to C:\Users\<UserName>\.AndroidStudioPreview\config\codestyles
  2. Go to File > Settings > Code Style > Java, select OpenPgpChecker, as well as Code Style > XML and select OpenPgpChecker again.
  3. Start code inspection and see the results by selecting Analyze > Inspect Code from Android-Studio.

Licenses

Copyright 2017 SchĂŒrmann & Breitmoser GbR

Licensed under the GPLv3.

Google Play and the Google Play logo are trademarks of Google Inc.

Comments
  • Decryption no longer works with Yubikey Neo: SecureMessagingException

    Decryption no longer works with Yubikey Neo: SecureMessagingException

    When I try to decrypt with my Yubikey Neo over NFC (which in the past, worked fine at some point), I get an error. For example, when using the decrypt-from-clipboard feature, or when using another program like https://github.com/zeapo/Android-Password-Store/issues/271.

    Expected Behavior

    Decryption succeeds.

    Current Behavior

    I now get Error: Transceive failed in the UI and the following stack trace in adb logcat:

    E/Keychain(13043): failed to establish secure messaging
    E/Keychain(13043): org.sufficientlysecure.keychain.securitytoken.SecureMessagingException: failed to retrieve secure messaging key attributes
    E/Keychain(13043): 	at org.sufficientlysecure.keychain.securitytoken.SCP11bSecureMessaging.establish(SCP11bSecureMessaging.java:298)
    E/Keychain(13043): 	at org.sufficientlysecure.keychain.securitytoken.SecurityTokenHelper.connectToDevice(SecurityTokenHelper.java:211)
    E/Keychain(13043): 	at org.sufficientlysecure.keychain.ui.base.BaseSecurityTokenActivity.handleSecurityToken(BaseSecurityTokenActivity.java:444)
    E/Keychain(13043): 	at org.sufficientlysecure.keychain.ui.base.BaseSecurityTokenActivity$1.doInBackground(BaseSecurityTokenActivity.java:172)
    E/Keychain(13043): 	at org.sufficientlysecure.keychain.ui.base.BaseSecurityTokenActivity$1.doInBackground(BaseSecurityTokenActivity.java:162)
    E/Keychain(13043): 	at android.os.AsyncTask$2.call(AsyncTask.java:288)
    E/Keychain(13043): 	at java.util.concurrent.FutureTask.run(FutureTask.java:237)
    E/Keychain(13043): 	at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:231)
    E/Keychain(13043): 	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
    E/Keychain(13043): 	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
    E/Keychain(13043): 	at java.lang.Thread.run(Thread.java:841)
    

    Possible Solution

    Not sure, but this is definitely a regression, it worked in the past.

    I wonder if it was this commit that broke it -- simply by the fact that it was the last one touching the code that raises the above exception.

    Steps to Reproduce (for bugs)

    1. Get a Yubikey Neo (for OpenKeychain devs: I'll buy you one if you don't have one)
    2. Encrypt a message to yourself to the clipboard
    3. Use decrypt from clipboard
    4. Tap the Yubikey via NFC, see it fail

    Your Environment

    • Android Version: 4.4
    • OpenKeychain Version: 4.2.4
    • From Google Play or F-Droid?: Google Play
    security token 
    opened by nh2 67
  • data formats for openpgp4fpr: links

    data formats for openpgp4fpr: links

    When I scan a QR Code that has the link OPENPGP4FPR:9F0FE587374BBE81 on it, I get this crash every time:

            AndroidRuntime  E  FATAL EXCEPTION: IntentService[KeychainIntentService]
                            E  Process: org.sufficientlysecure.keychain, PID: 15731
                            E  java.lang.StringIndexOutOfBoundsException: length=16; index=24
                            E      at java.lang.String.indexAndLength(String.java:584)
                            E      at java.lang.String.substring(String.java:1449)
                            E      at org.sufficientlysecure.keychain.operations.ImportExportOperation.importKeyRings(ImportExportOperation.java:219)
                            E      at org.sufficientlysecure.keychain.operations.ImportExportOperation.importKeyRings(ImportExportOperation.java:136)
                            E      at org.sufficientlysecure.keychain.service.KeychainIntentService.onHandleIntent(KeychainIntentService.java:525)
                            E      at android.app.IntentService$ServiceHandler.handleMessage(IntentService.java:65)
                            E      at android.os.Handler.dispatchMessage(Handler.java:102)
                            E      at android.os.Looper.loop(Looper.java:136)
                            E      at android.os.HandlerThread.run(HandlerThread.java:61)
    
    
    discussion 
    opened by eighthave 55
  • Support for OpenPGP Smartcard in USB reader

    Support for OpenPGP Smartcard in USB reader

    I don't know how much work it would be to add this, but I assume now that OpenKeychain supports tokens over USB it shouldn't be too much work. I have a OpenPGP smartcard in an Gemalto K30 reader. It seems to not work with OpenKeychain currently. It would be great, if it could work with OpenKeychain. I assume a lot of people have such cards, the FSFE also gives them out to supporters.

    From what I understand, the protocol is exactly the same as with the yubikey, so probably only the detection/support for additional smartcard readers is missing?

    enhancement security token 
    opened by J0s3f 51
  • Contact sync not working on Android 9

    Contact sync not working on Android 9

    Expected Behavior

    In the settings, switch "Link keys to contacts" on for syncing contacts

    Current Behavior

    Since upgrading my Oneplus 6 to Omnirom 9.0 the switch always goes back to off.

    Your Environment

    • Android Version: 9.0 September patch level
    • Device Model: Oneplus 6
    • OpenKeychain Version: 5.2
    • From Google Play or F-Droid?: F-Droid

    Here's a logcat of the in my opinion relevant lines. Seems like some missing permissions. The contacts permission, however, is granted to the app.

    2018-09-17-17-14-13.txt

    If you need further assistance, please let me know.

    opened by Chartman123 43
  • Fix signing with stripped master key + add tests

    Fix signing with stripped master key + add tests

    Hi,

    i'm trying to use openkeychain with the xmpp-client Conversations. and unfortunately, after trying for a couple of hours and reading all issues on the topic i found, i couldnt get it to work.

    When i try to open the signing key (not only from Conversations, but also when i try to sign inside the openkeychain app), I get prompted for the password, but after entering it, I only get a message "Private key could not be extracted". As I wrote in the title, I don't want to use the master Key for signing, but a dedicated signing key, because my key is split the debian way, i.e. one only for certifying, one for encrypting and one for signing. The master key is correctly marked as not available, but somehow the app seems to try to use it for signing purposes. The same key is working in APG with k9-mail.

    This issue might be related to #570, #624 and #588, which all are marked as fixed. Strangely, the issue persists for me.

    If you need further information, i'll be happy to provide what i can to clear things up.

    Thanks in advance

    • Philipp
    bug 
    opened by phfalk 43
  • Improve ImportKeysListFragment

    Improve ImportKeysListFragment

    I've started working on improving various parts of the UI of the app.

    This is a first step regarding ImportKeysListFragment. I've in mind other improvements but i think it's already better than before. Other things will come soon. (for both UI and code)

    (I'm sorry for the language of the screenshots)

    opened by runnerway 36
  • Nfc error when approaching a yubico 5 nfc

    Nfc error when approaching a yubico 5 nfc

    after updating to version 5.6 the encryption via NFC no longer works. in practice, before I approached yubico Nfc to the cell phone and confirmation of encryption came out, now instead when it asks to approach the yubico via Nfc, it crashes or opens Chrome. the control no longer applies at the time of the nfc

    Screenshot_20210215-184004

    Screenshot_20210215-184028

    opened by tigernero79 35
  • Security Token: Improvements to USB support

    Security Token: Improvements to USB support

    • Add more devices to the whitelist: e.g., Nitrokey
    • Other pictures with USB devices for the dialog
    • Key generation on security token: a method is already there but not used because key generation over NFC is extremely unreliable and works only 1/3 of the time. I suspect that is because of power issues, which should not happen with USB.
    • warning for reset procedure?
    • animation when going from the CreateSecurityTokenWaitFragment moves into the wrong direction (just a minor glitch)
    help wanted security token 
    opened by dschuermann 34
  • Certify screen: Wording discussion

    Certify screen: Wording discussion

    I’m running a week-or-so old build and the new certify is an improvement, but it still isn’t very civilian-friendly. I sketched in code (just XML fiddling) to try to make what’s going on a little more useful to non-geeks. Useful direction?

    screenshot_2014-10-20-11-34-14

    discussion 
    opened by timbray 34
  • [WIP] USB OTG Support for Yubikey

    [WIP] USB OTG Support for Yubikey

    Hello, This is WIP PR for USB OTG Yubikey support (and possibly other devices like Nitrokey).

    This is in very early stage, basically a quickly hacked proof of concept, but I decided to open anyway and to show some progress, as @Valodim suggested in #1550

    Despite being in early stage, everything should be usable, so you can test it if you want.

    Issues:

    • [x] User shouldn't need to reinset device on each operation
    • [x] Disconnects are not handled properly
    • [x] Reinsert required in some ocasions(encrypting after reinserting on prev screen)
    • [x] Update Manage my keys -> Security token thing
    • [x] Investigate issue with transmitting -1
    • [ ] Investigate bricking on card reset
    • [ ] Needs refactoring (error handling, ....)
    • [ ] Tests?
    • [ ] Nitrokey & others

    cc @Valodim @dschuermann

    opened by nmikhailov 31
  • failed to import key

    failed to import key

    failed to import keys Error: "Nothing to import". My file was pubring.asc which was created from desktop using gpg4usb -----BEGIN PGP PUBLIC KEY BLOCK-----

    Version: GnuPG v1.4.12 (MingW32)

    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

    =Nf66

    -----END PGP PUBLIC KEY BLOCK-----

    bug 
    opened by junerin 31
  • Open-Keychain crashes when de-/encrypting PGP emails K9 (& FairMail)

    Open-Keychain crashes when de-/encrypting PGP emails K9 (& FairMail)

    Open-Keychain crashes when trying to de-/encrypt PGP emails in K9 (also tried FairMail), with my Yubikey. This has been working for ages but recently stopped on my Pixel6 (Android 13, Build TQ1A.221205.011)

    Expected Behavior

    1. Clicking on encrypted email, entering the PIN for the Yubikey, placing it on the back of the phone (NFC), removing it and the decrypted mail is shown in the client (K9 or FairMail).

    2. Enable encryption for an email, click on send, enter the PIN, place the Yubikey on the back of the phone (NFC), remove it and the encrypted mail is sent.

    Current Behavior

    1. Clicking on encrypted email, entering the PIN for the Yubikey, placing it on the back of the phone (NFC), removing it -> Full crash of Open-Keychain, as well as the client (K9 or FairMail).

    2. When trying to encrypt an email, Open-Keychain also crashes and leaves the drafted email in the Drafts folder.

    Possible Solution

    None :(

    Steps to Reproduce (for bugs)

    See above.

    Context

    I'm trying to de-/encrypt PGP emails, which doesn't work anymore.

    Your Environment

    • Android Version: 13, Build TQ1A.221205.011, security update from December 5th
    • Device Model: Pixel6
    • OpenKeychain Version: 5.7.5
    • From Google Play or F-Droid?: Google Play
    • K9: 6.400
    opened by moritzp 4
  • OpenKeychain crashes on launch

    OpenKeychain crashes on launch

    I have a similar issue to #2480 but I'm not sure if it is the same SQLite issue so I'm opening a fresh ticket. This may have broken due to the latest Android 13 security fix because nothing changed between yesterday when Password Store / OpenKeychain worked and today when they do not except for updating Android. I am able to repro this issue on a Pixel 6 and a Pixel 6a.

    Expected Behavior

    • Attempt to access a password in password store
    • Unlock openkeychain with yubikey
    • Password is shown

    Current Behavior

    • Attempt to access a password in password store
    • Unlock openkeychain with yubikey
    • Password is not shown

    Possible Solution

    Perhaps @natjms suggestion of a SQLite issue is relevant to my issue as well.

    Steps to Reproduce (for bugs)

    • See above

    Your Environment

    • Android 13
    • Build number TQ1A.221205.011
    • OpenKeychain 5.7 (from Fdroid)
    • Android Password Store 1.13.5 (from Fdroid)
    opened by kensmith 4
  • Incognito mode for the keyboard

    Incognito mode for the keyboard

    It would be nice to enable the function that makes your current keyboard e.g. Google keyboard go into incognito mode and disable automated word recognition.

    Current Behavior

    The automatic word learning that many people use to improve the correction of text can be a problem that affects privacy, as this collection of words is based on storing repeated phrases or frequently used, to solve this problem would enable the application itself to ask the keyboard to activate the incognito mode of the same, to avoid this collection of content, as normally in this application is usually write texts of a delicate character. gboard Example of Gboard in incognito mode

    My Environment

    • Android Version: 11
    • Device Model: Xiaomi Mi A3
    • OpenKeychain Version: 5.7.5
    • Source: Google play store
    opened by ValkoinenKissa 0
  • error exporting txt file encrypted in a gpg file

    error exporting txt file encrypted in a gpg file

    It is not possible to export a txt file encrypted in a .gpg as the original .txt file test.txt.gpg -> test.txt

    Expected Behavior

    Encrypted .txt file could saved as a decrypted .txt

    Current Behavior

    Openkeychain consider .txt file a content to be shared with messaging apps like Signal, but not as a .txt file that could be saved with file apps like "Simple File Manager". So it is not possible to have the original txt file straight away.

    Possible Solution

    Add a "save" button. This way, user can save txt file but are still able to export the content using share button.

    Steps to Reproduce (for bugs)

    1. download test.txt or create a new txt file containing any text of your choice
    2. Encrypt test.txt with your key to have a gpg file = test.txt.pgp
    3. Open test.txt.gpg using openkeychain's decryption function and unlock the key. Now the decrypted text is shown in the app
    4. Press share button
    5. Choose an app that manage files like Simple File Manager or Syncthing to save the original txt file
    6. An error notification appears

    Context

    Some app save a backup of their data as a text file (with txt extension or with no extension at all like Android app "Native Alpha") so in this case the user want to have the original txt immediately available and not the text inside it

    Your Environment

    • Android Version: 10
    • Device Model: Oppo CPH1931
    • OpenKeychain Version: 5.7.5
    • From Google Play or F-Droid?: fdroid
    opened by luca-e075e 0
Implementation of the application using the latest Android Tech Stack and the GitHub REST API.

GitHub Viewer Implementation of the application using the latest Android Tech Stack and the GitHub REST API. <!-- Github login. You can change the use

Vitaliy Zarubin 53 Jan 3, 2023
A simple implementation of the Android In-App Billing API.

Google In-App Billing Library v4+ A simple implementation of the Android In-App Billing API. It supports: in-app purchases (both consumable and non-co

Moisoni Ioan 79 Dec 12, 2022
Wandroid project based on Kotlin + JetPack + concurrent implementation of MVVM architecture for playing Android App

Wandroid project based on Kotlin + JetPack + concurrent implementation of MVVM architecture for playing Android App

null 32 Feb 13, 2022
Firebase Authentication and realtime database implementation in Android Kotlin

Androidfirebaseauthentication Firebase is Google’s mobile platform that helps you develop high-quality apps and provides hosted backend services such

Samwel Nyandoro 1 Mar 21, 2022
Multi Roots TreeView implementation for Android Platform with a lot of options and customization

TreeView Multi Roots TreeView implementation for Android Platform with a lot of options and customization Demo Features: - No Custom Views. - Easy use

Amr Hesham 74 May 10, 2022
Turtle Graphics 🐱 implementation for Android Platform with Code Editor, Preview Screen and packages

Turtle Graphics Download Turtle is an Android Application inspired from the original Turtle Graphics and Logo, Logo is an educational programming lang

Amr Hesham 15 Dec 30, 2022
GeckoView implementation on android for React Native.

react-native-geckoview A fully functional implementation of GeckoView on android for react native. The component supports two-way messaging similar to

Ammar Ahmed 7 Nov 24, 2022
The implementation of https://dribbble.com/shots/2067564-Replace

FlyRefresh The Android implementation of Replace, designed by Zee Youn. I implement this as a FlyRefresh layout. The content of the layout can be any

ćŽæ™¶ 2.9k Nov 29, 2022
Implementation of Instagram with Material Design (originally based on Emmanuel Pacamalan's concept)

InstaMaterial Updated Current source code contains UI elements from Design Support Library. If you still want to see how custom implementations of e.g

MirosƂaw Stanek 5k Dec 27, 2022
Simple Mvp Implementation

Froggy Simple Mvp Implementation Download Gragle: compile 'ru.bullyboo.mvp:froggy:1.0.2' Maven: <dependency> <groupId>ru.bullyboo.mvp</groupId>

Rostislav Sharafutdinov 15 Mar 17, 2019
A project for the implementation of the car animation feature in most ride-sharing/ food delivery apps

CarAnimation This is a test project to practice the implementation of the car animation feature in most ride-sharing/ food delivery apps. Slowly build

Samurai 45 Dec 23, 2022
Implementation of useful hooks inspired by React for Compose

useCompose React inspired hooks for Compose Installation Step 1. Add the JitPack repository to your build file Add it in your root build.gradle at the

Pavitra Golchha 20 Nov 14, 2022
New-SplashScreen-API - SplashScreen API Implementation Sample

SplashScreen API Implementation Sample Installation - Usage <style name="Theme.A

Arda Kazancı 0 Jan 3, 2022
Cql-cds-hooks - HL7 CDS HOOKS Implementation with CQL support

CQL CDS HOOKS HL7 CDS HOOKS implementation with CQL (Clinical Quality Language)

PHAST 1 Jan 27, 2022
Glickotlin - Kotlin implementation of the Glicko2 algorithm

Glickotlin Glickotlin is a Kotlin implementation of the Glicko2 algorithm. Glick

Jules Tréhorel 0 Jan 29, 2022
A powerful library for easy implementation of HMS Location Kit.

AdvancedLocation A powerful library for easy implementation of HMS Location Kit. ?? Request location with couple lines of code (no more boilerplate) C

null 2 Aug 4, 2022
React Native Stone SDK Implementation (Support for both Mobile and POS versions)

react-native-stone-pos Stone Android POS Native Module Installation Stone has a private packageCloud repository, so we need to have your token before

8Sistemas 9 Dec 10, 2022
Java/Kotlin lightweight implementation of RFC-6238 and RFC-4226 to generate and validate time-based one-time passwords (TOTP).

1time Java/Kotlin lightweight implementation of RFC-6238 and RFC-4226 to generate and validate time-based one-time passwords (TOTP). Maven / gradle de

Atlassian Labs 31 Dec 21, 2022
android-delicious Delicious Android is an Android app which helps you access and save bookmarks via Delicious. It's available over at Google Play.

Delicious Android Delicious Android is an Android app which helps you access and save bookmarks via Delicious. It's available over at Google Play. Fea

Alexander Blom 137 Nov 20, 2022