Rebrand my fork as andOTP
This commit is contained in:
parent
96a41e3464
commit
c00109aacf
22 changed files with 38 additions and 32 deletions
|
@ -37,7 +37,7 @@
|
||||||
<ConfirmationsSetting value="0" id="Add" />
|
<ConfirmationsSetting value="0" id="Add" />
|
||||||
<ConfirmationsSetting value="0" id="Remove" />
|
<ConfirmationsSetting value="0" id="Remove" />
|
||||||
</component>
|
</component>
|
||||||
<component name="ProjectRootManager" version="2" languageLevel="JDK_1_8" default="true" assert-keyword="true" jdk-15="true" project-jdk-name="1.8" project-jdk-type="JavaSDK">
|
<component name="ProjectRootManager" version="2" languageLevel="JDK_1_7" default="true" assert-keyword="true" jdk-15="true" project-jdk-name="1.8" project-jdk-type="JavaSDK">
|
||||||
<output url="file://$PROJECT_DIR$/build/classes" />
|
<output url="file://$PROJECT_DIR$/build/classes" />
|
||||||
</component>
|
</component>
|
||||||
<component name="ProjectType">
|
<component name="ProjectType">
|
||||||
|
|
|
@ -2,10 +2,8 @@
|
||||||
<project version="4">
|
<project version="4">
|
||||||
<component name="ProjectModuleManager">
|
<component name="ProjectModuleManager">
|
||||||
<modules>
|
<modules>
|
||||||
<module fileurl="file://$PROJECT_DIR$/OpenOTP.iml" filepath="$PROJECT_DIR$/OpenOTP.iml" />
|
<module fileurl="file://$PROJECT_DIR$/andOTP.iml" filepath="$PROJECT_DIR$/andOTP.iml" />
|
||||||
<module fileurl="file://$PROJECT_DIR$/app/app.iml" filepath="$PROJECT_DIR$/app/app.iml" />
|
<module fileurl="file://$PROJECT_DIR$/app/app.iml" filepath="$PROJECT_DIR$/app/app.iml" />
|
||||||
<module fileurl="file://$PROJECT_DIR$/app/app.iml" filepath="$PROJECT_DIR$/app/app.iml" />
|
|
||||||
<module fileurl="file://$PROJECT_DIR$/otp-authenticator.iml" filepath="$PROJECT_DIR$/otp-authenticator.iml" />
|
|
||||||
</modules>
|
</modules>
|
||||||
</component>
|
</component>
|
||||||
</project>
|
</project>
|
1
LICENSE
1
LICENSE
|
@ -1,3 +1,4 @@
|
||||||
|
Copyright (C) 2017 Jakob Nixdorf <flocke@shadowice.org>
|
||||||
Copyright (C) 2015 Bruno Bierbaumer
|
Copyright (C) 2015 Bruno Bierbaumer
|
||||||
Permission is hereby granted, free of charge, to any person obtaining a copy of
|
Permission is hereby granted, free of charge, to any person obtaining a copy of
|
||||||
this software and associated documentation files (the "Software"), to deal in the
|
this software and associated documentation files (the "Software"), to deal in the
|
||||||
|
|
17
README.md
17
README.md
|
@ -1,25 +1,29 @@
|
||||||
# OTP Authenticator [![Build Status](https://img.shields.io/travis/0xbb/otp-authenticator/master.svg?style=flat-square)](https://travis-ci.org/0xbb/otp-authenticator)
|
# andOTP - Android OTP Authenticator
|
||||||
![OTP Authenticator Icon](./media/icon.png)
|
![andOTP](./media/icon.png)
|
||||||
|
|
||||||
OTP Authenticator is a two-factor authentication App for Android 4.0+.
|
andOTP is a two-factor authentication App for Android 4.3+.
|
||||||
|
|
||||||
It implements Time-based One-time Passwords (TOTP) like specified in RFC 6238.
|
It implements Time-based One-time Passwords (TOTP) like specified in RFC 6238.
|
||||||
Simply scan the QR code and login with the generated 6-digit code.
|
Simply scan the QR code and login with the generated 6-digit code.
|
||||||
|
|
||||||
|
This is a fork of the great OTP Authenticator app written by Bruno Bierbaumer,
|
||||||
|
which has sadly been inactive since 2015. All credit for the original version
|
||||||
|
goes to Bruno.
|
||||||
|
|
||||||
## Features:
|
## Features:
|
||||||
- Free and Open-Source
|
- Free and Open-Source
|
||||||
- Requires minimal permissions
|
- Requires minimal permissions
|
||||||
- Only camera access for QR code scanning
|
- Only camera access for QR code scanning
|
||||||
- Encrypted storage on Android 4.3+
|
- Encrypted storage
|
||||||
- Sleek minimalistic Material Design
|
- Sleek minimalistic Material Design
|
||||||
- Great Usability
|
- Great Usability
|
||||||
- Compatible with Google Authenticator
|
- Compatible with Google Authenticator
|
||||||
|
|
||||||
|
<!--
|
||||||
|
|
||||||
## Download:
|
## Download:
|
||||||
### Google Play:
|
### Google Play:
|
||||||
|
|
||||||
|
|
||||||
<a href="https://play.google.com/store/apps/details?id=net.bierbaumer.otp_authenticator&utm_source=global_co&utm_medium=prtnr&utm_content=Mar2515&utm_campaign=PartBadge&pcampaignid=MKT-AC-global-none-all-co-pr-py-PartBadges-Oct1515-1"><img width=250 alt="Get it on Google Play" src="https://play.google.com/intl/en_us/badges/images/apps/en-play-badge.png" /></a>
|
<a href="https://play.google.com/store/apps/details?id=net.bierbaumer.otp_authenticator&utm_source=global_co&utm_medium=prtnr&utm_content=Mar2515&utm_campaign=PartBadge&pcampaignid=MKT-AC-global-none-all-co-pr-py-PartBadges-Oct1515-1"><img width=250 alt="Get it on Google Play" src="https://play.google.com/intl/en_us/badges/images/apps/en-play-badge.png" /></a>
|
||||||
|
|
||||||
|
|
||||||
|
@ -29,6 +33,8 @@ Simply scan the QR code and login with the generated 6-digit code.
|
||||||
### APK:
|
### APK:
|
||||||
[![Download Latest Version (v0.1.2)](https://chart.googleapis.com/chart?chs=300x300&cht=qr&chl=https://github.com/0xbb/otp-authenticator/releases/download/v0.1.2/otp-authenticator-v0.1.2.apk)](https://github.com/0xbb/otp-authenticator/releases/download/v0.1.2/otp-authenticator-v0.1.2.apk)
|
[![Download Latest Version (v0.1.2)](https://chart.googleapis.com/chart?chs=300x300&cht=qr&chl=https://github.com/0xbb/otp-authenticator/releases/download/v0.1.2/otp-authenticator-v0.1.2.apk)](https://github.com/0xbb/otp-authenticator/releases/download/v0.1.2/otp-authenticator-v0.1.2.apk)
|
||||||
|
|
||||||
|
-->
|
||||||
|
|
||||||
## Screenshots:
|
## Screenshots:
|
||||||
### Overview:
|
### Overview:
|
||||||
![Home Screen](./media/overview_720p.gif)
|
![Home Screen](./media/overview_720p.gif)
|
||||||
|
@ -47,6 +53,7 @@ Simply scan the QR code and login with the generated 6-digit code.
|
||||||
|
|
||||||
## License:
|
## License:
|
||||||
```
|
```
|
||||||
|
Copyright (C) 2017 Jakob Nixdorf <flocke@shadowice.org>
|
||||||
Copyright (C) 2015 Bruno Bierbaumer
|
Copyright (C) 2015 Bruno Bierbaumer
|
||||||
Permission is hereby granted, free of charge, to any person obtaining a copy of
|
Permission is hereby granted, free of charge, to any person obtaining a copy of
|
||||||
this software and associated documentation files (the "Software"), to deal in the
|
this software and associated documentation files (the "Software"), to deal in the
|
||||||
|
|
|
@ -5,7 +5,7 @@ android {
|
||||||
buildToolsVersion '25.0.3'
|
buildToolsVersion '25.0.3'
|
||||||
|
|
||||||
defaultConfig {
|
defaultConfig {
|
||||||
applicationId "net.bierbaumer.otp_authenticator"
|
applicationId "org.shadowice.flocke.andotp"
|
||||||
minSdkVersion 18
|
minSdkVersion 18
|
||||||
targetSdkVersion 25
|
targetSdkVersion 25
|
||||||
versionCode 3
|
versionCode 3
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
package net.bierbaumer.otp_authenticator;
|
package org.shadowice.flocke.andotp;
|
||||||
|
|
||||||
import android.app.Application;
|
import android.app.Application;
|
||||||
import android.content.Context;
|
import android.content.Context;
|
|
@ -1,4 +1,4 @@
|
||||||
package net.bierbaumer.otp_authenticator;
|
package org.shadowice.flocke.andotp;
|
||||||
|
|
||||||
|
|
||||||
import android.app.Activity;
|
import android.app.Activity;
|
|
@ -1,6 +1,6 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<manifest xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools"
|
<manifest xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools"
|
||||||
package="net.bierbaumer.otp_authenticator">
|
package="org.shadowice.flocke.andotp">
|
||||||
|
|
||||||
<application
|
<application
|
||||||
android:allowBackup="false"
|
android:allowBackup="false"
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
package net.bierbaumer.otp_authenticator;
|
package org.shadowice.flocke.andotp;
|
||||||
|
|
||||||
import com.journeyapps.barcodescanner.CaptureActivity;
|
import com.journeyapps.barcodescanner.CaptureActivity;
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
package net.bierbaumer.otp_authenticator;
|
package org.shadowice.flocke.andotp;
|
||||||
|
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
|
|
||||||
|
@ -20,8 +20,8 @@ import javax.crypto.SecretKey;
|
||||||
import javax.crypto.spec.IvParameterSpec;
|
import javax.crypto.spec.IvParameterSpec;
|
||||||
import javax.crypto.spec.SecretKeySpec;
|
import javax.crypto.spec.SecretKeySpec;
|
||||||
|
|
||||||
import static net.bierbaumer.otp_authenticator.Utils.readFully;
|
import static org.shadowice.flocke.andotp.Utils.readFully;
|
||||||
import static net.bierbaumer.otp_authenticator.Utils.writeFully;
|
import static org.shadowice.flocke.andotp.Utils.writeFully;
|
||||||
|
|
||||||
public class EncryptionHelper {
|
public class EncryptionHelper {
|
||||||
private final static String ALGORITHM = "AES/GCM/NoPadding";
|
private final static String ALGORITHM = "AES/GCM/NoPadding";
|
|
@ -1,4 +1,4 @@
|
||||||
package net.bierbaumer.otp_authenticator;
|
package org.shadowice.flocke.andotp;
|
||||||
|
|
||||||
import android.content.ClipData;
|
import android.content.ClipData;
|
||||||
import android.graphics.Color;
|
import android.graphics.Color;
|
|
@ -1,4 +1,4 @@
|
||||||
package net.bierbaumer.otp_authenticator;
|
package org.shadowice.flocke.andotp;
|
||||||
|
|
||||||
import android.net.Uri;
|
import android.net.Uri;
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
package net.bierbaumer.otp_authenticator;
|
package org.shadowice.flocke.andotp;
|
||||||
|
|
||||||
import android.Manifest;
|
import android.Manifest;
|
||||||
import android.animation.ObjectAnimator;
|
import android.animation.ObjectAnimator;
|
|
@ -1,4 +1,4 @@
|
||||||
package net.bierbaumer.otp_authenticator;
|
package org.shadowice.flocke.andotp;
|
||||||
|
|
||||||
import android.app.Application;
|
import android.app.Application;
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
package net.bierbaumer.otp_authenticator;
|
package org.shadowice.flocke.andotp;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* This software is provided 'as-is', without any express or implied
|
* This software is provided 'as-is', without any express or implied
|
|
@ -14,7 +14,7 @@
|
||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package net.bierbaumer.otp_authenticator;
|
package org.shadowice.flocke.andotp;
|
||||||
|
|
||||||
import android.annotation.SuppressLint;
|
import android.annotation.SuppressLint;
|
||||||
import android.annotation.TargetApi;
|
import android.annotation.TargetApi;
|
|
@ -1,4 +1,4 @@
|
||||||
package net.bierbaumer.otp_authenticator;
|
package org.shadowice.flocke.andotp;
|
||||||
|
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.os.Build;
|
import android.os.Build;
|
||||||
|
@ -11,8 +11,8 @@ import java.util.ArrayList;
|
||||||
|
|
||||||
import javax.crypto.SecretKey;
|
import javax.crypto.SecretKey;
|
||||||
|
|
||||||
import static net.bierbaumer.otp_authenticator.Utils.readFully;
|
import static org.shadowice.flocke.andotp.Utils.readFully;
|
||||||
import static net.bierbaumer.otp_authenticator.Utils.writeFully;
|
import static org.shadowice.flocke.andotp.Utils.writeFully;
|
||||||
|
|
||||||
public class SettingsHelper {
|
public class SettingsHelper {
|
||||||
public static final String KEY_FILE = "otp.key";
|
public static final String KEY_FILE = "otp.key";
|
|
@ -1,4 +1,4 @@
|
||||||
package net.bierbaumer.otp_authenticator;
|
package org.shadowice.flocke.andotp;
|
||||||
|
|
||||||
import javax.crypto.Mac;
|
import javax.crypto.Mac;
|
||||||
import javax.crypto.spec.SecretKeySpec;
|
import javax.crypto.spec.SecretKeySpec;
|
|
@ -14,7 +14,7 @@
|
||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package net.bierbaumer.otp_authenticator;
|
package org.shadowice.flocke.andotp;
|
||||||
|
|
||||||
import java.io.ByteArrayOutputStream;
|
import java.io.ByteArrayOutputStream;
|
||||||
import java.io.File;
|
import java.io.File;
|
|
@ -5,7 +5,7 @@
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="match_parent"
|
android:layout_height="match_parent"
|
||||||
android:fitsSystemWindows="true"
|
android:fitsSystemWindows="true"
|
||||||
tools:context="net.bierbaumer.otp_authenticator.MainActivity">
|
tools:context="org.shadowice.flocke.andotp.MainActivity">
|
||||||
|
|
||||||
<android.support.design.widget.AppBarLayout
|
<android.support.design.widget.AppBarLayout
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
|
|
|
@ -10,7 +10,7 @@
|
||||||
android:paddingRight="@dimen/activity_horizontal_margin"
|
android:paddingRight="@dimen/activity_horizontal_margin"
|
||||||
android:paddingTop="@dimen/activity_vertical_margin"
|
android:paddingTop="@dimen/activity_vertical_margin"
|
||||||
app:layout_behavior="@string/appbar_scrolling_view_behavior"
|
app:layout_behavior="@string/appbar_scrolling_view_behavior"
|
||||||
tools:context="net.bierbaumer.otp_authenticator.MainActivity"
|
tools:context="org.shadowice.flocke.andotp.MainActivity"
|
||||||
tools:showIn="@layout/activity_main">
|
tools:showIn="@layout/activity_main">
|
||||||
|
|
||||||
<ListView
|
<ListView
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
<resources>
|
<resources>
|
||||||
<string name="app_name">OTP Authenticator</string>
|
<string name="app_name">andOTP</string>
|
||||||
<string name="app_launcher">Authenticator</string>
|
<string name="app_launcher">OTP Authenticator</string>
|
||||||
<string name="no_accounts">No account has been added yet</string>
|
<string name="no_accounts">No account has been added yet</string>
|
||||||
<string name="menu_delete">Delete</string>
|
<string name="menu_delete">Delete</string>
|
||||||
<string name="menu_edit">Edit</string>
|
<string name="menu_edit">Edit</string>
|
||||||
|
|
Loading…
Reference in a new issue