mirror of https://github.com/beemdevelopment/Aegis
Rename package to com.beemdevelopment.aegis
parent
ceb03de240
commit
62425511a1
@ -1,4 +1,4 @@
|
||||
package me.impy.aegis;
|
||||
package com.beemdevelopment.aegis;
|
||||
|
||||
import android.app.Application;
|
||||
import android.test.ApplicationTestCase;
|
@ -1,4 +1,4 @@
|
||||
package me.impy.aegis;
|
||||
package com.beemdevelopment.aegis;
|
||||
|
||||
import android.content.Context;
|
||||
import android.content.SharedPreferences;
|
@ -1,13 +1,13 @@
|
||||
package me.impy.aegis.crypto;
|
||||
package com.beemdevelopment.aegis.crypto;
|
||||
|
||||
import com.beemdevelopment.aegis.encoding.Hex;
|
||||
import com.beemdevelopment.aegis.encoding.HexException;
|
||||
|
||||
import org.json.JSONException;
|
||||
import org.json.JSONObject;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
import me.impy.aegis.encoding.Hex;
|
||||
import me.impy.aegis.encoding.HexException;
|
||||
|
||||
public class CryptParameters implements Serializable {
|
||||
private byte[] _nonce;
|
||||
private byte[] _tag;
|
@ -1,4 +1,4 @@
|
||||
package me.impy.aegis.crypto;
|
||||
package com.beemdevelopment.aegis.crypto;
|
||||
|
||||
public class CryptResult {
|
||||
private byte[] _data;
|
@ -1,4 +1,4 @@
|
||||
package me.impy.aegis.crypto;
|
||||
package com.beemdevelopment.aegis.crypto;
|
||||
|
||||
import android.os.Build;
|
||||
|
@ -1,4 +1,4 @@
|
||||
package me.impy.aegis.crypto;
|
||||
package com.beemdevelopment.aegis.crypto;
|
||||
|
||||
import android.os.Build;
|
||||
import android.security.keystore.KeyGenParameterSpec;
|
@ -1,4 +1,4 @@
|
||||
package me.impy.aegis.crypto;
|
||||
package com.beemdevelopment.aegis.crypto;
|
||||
|
||||
public class KeyStoreHandleException extends Exception {
|
||||
public KeyStoreHandleException(Throwable cause) {
|
@ -1,4 +1,4 @@
|
||||
package me.impy.aegis.crypto;
|
||||
package com.beemdevelopment.aegis.crypto;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.io.Serializable;
|
@ -1,4 +1,4 @@
|
||||
package me.impy.aegis.crypto;
|
||||
package com.beemdevelopment.aegis.crypto;
|
||||
|
||||
public class MasterKeyException extends Exception {
|
||||
public MasterKeyException(Throwable cause) {
|
@ -1,4 +1,4 @@
|
||||
package me.impy.aegis.crypto;
|
||||
package com.beemdevelopment.aegis.crypto;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
@ -1,4 +1,4 @@
|
||||
package me.impy.aegis.crypto.otp;
|
||||
package com.beemdevelopment.aegis.crypto.otp;
|
||||
|
||||
/*
|
||||
* OneTimePasswordAlgorithm.java
|
@ -1,4 +1,4 @@
|
||||
package me.impy.aegis.crypto.otp;
|
||||
package com.beemdevelopment.aegis.crypto.otp;
|
||||
|
||||
/**
|
||||
Copyright (c) 2011 IETF Trust and the persons identified as
|
@ -1,4 +1,4 @@
|
||||
package me.impy.aegis.db;
|
||||
package com.beemdevelopment.aegis.db;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
|
@ -1,4 +1,4 @@
|
||||
package me.impy.aegis.db;
|
||||
package com.beemdevelopment.aegis.db;
|
||||
|
||||
public class DatabaseException extends Exception {
|
||||
public DatabaseException(Throwable cause) {
|
@ -1,19 +1,19 @@
|
||||
package me.impy.aegis.db;
|
||||
package com.beemdevelopment.aegis.db;
|
||||
|
||||
import com.beemdevelopment.aegis.crypto.CryptParameters;
|
||||
import com.beemdevelopment.aegis.crypto.CryptResult;
|
||||
import com.beemdevelopment.aegis.crypto.MasterKeyException;
|
||||
import com.beemdevelopment.aegis.db.slots.SlotList;
|
||||
import com.beemdevelopment.aegis.db.slots.SlotListException;
|
||||
import com.beemdevelopment.aegis.encoding.Base64;
|
||||
import com.beemdevelopment.aegis.encoding.Base64Exception;
|
||||
import com.beemdevelopment.aegis.encoding.HexException;
|
||||
|
||||
import org.json.JSONException;
|
||||
import org.json.JSONObject;
|
||||
|
||||
import java.io.UnsupportedEncodingException;
|
||||
|
||||
import me.impy.aegis.crypto.CryptParameters;
|
||||
import me.impy.aegis.crypto.CryptResult;
|
||||
import me.impy.aegis.crypto.MasterKeyException;
|
||||
import me.impy.aegis.db.slots.SlotList;
|
||||
import me.impy.aegis.db.slots.SlotListException;
|
||||
import me.impy.aegis.encoding.Base64;
|
||||
import me.impy.aegis.encoding.Base64Exception;
|
||||
import me.impy.aegis.encoding.HexException;
|
||||
|
||||
public class DatabaseFile {
|
||||
public static final byte VERSION = 1;
|
||||
|
@ -1,12 +1,13 @@
|
||||
package me.impy.aegis.db;
|
||||
package com.beemdevelopment.aegis.db;
|
||||
|
||||
import com.beemdevelopment.aegis.crypto.CryptParameters;
|
||||
import com.beemdevelopment.aegis.crypto.CryptResult;
|
||||
import com.beemdevelopment.aegis.crypto.MasterKey;
|
||||
import com.beemdevelopment.aegis.crypto.MasterKeyException;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
import me.impy.aegis.crypto.CryptParameters;
|
||||
import me.impy.aegis.crypto.CryptResult;
|
||||
import me.impy.aegis.crypto.MasterKey;
|
||||
import me.impy.aegis.crypto.MasterKeyException;
|
||||
import me.impy.aegis.db.slots.SlotList;
|
||||
import com.beemdevelopment.aegis.db.slots.SlotList;
|
||||
|
||||
public class DatabaseFileCredentials implements Serializable {
|
||||
private MasterKey _key;
|
@ -1,4 +1,4 @@
|
||||
package me.impy.aegis.db;
|
||||
package com.beemdevelopment.aegis.db;
|
||||
|
||||
public class DatabaseFileException extends Exception {
|
||||
public DatabaseFileException(Throwable cause) {
|
@ -1,4 +1,4 @@
|
||||
package me.impy.aegis.db;
|
||||
package com.beemdevelopment.aegis.db;
|
||||
|
||||
public class DatabaseManagerException extends Exception {
|
||||
public DatabaseManagerException(Throwable cause) {
|
@ -1,8 +1,8 @@
|
||||
package me.impy.aegis.db.slots;
|
||||
package com.beemdevelopment.aegis.db.slots;
|
||||
|
||||
import java.util.UUID;
|
||||
import com.beemdevelopment.aegis.crypto.CryptParameters;
|
||||
|
||||
import me.impy.aegis.crypto.CryptParameters;
|
||||
import java.util.UUID;
|
||||
|
||||
public class FingerprintSlot extends RawSlot {
|
||||
public FingerprintSlot() {
|
@ -1,8 +1,8 @@
|
||||
package me.impy.aegis.db.slots;
|
||||
package com.beemdevelopment.aegis.db.slots;
|
||||
|
||||
import java.util.UUID;
|
||||
import com.beemdevelopment.aegis.crypto.CryptParameters;
|
||||
|
||||
import me.impy.aegis.crypto.CryptParameters;
|
||||
import java.util.UUID;
|
||||
|
||||
public class RawSlot extends Slot {
|
||||
public RawSlot() {
|
@ -1,4 +1,4 @@
|
||||
package me.impy.aegis.db.slots;
|
||||
package com.beemdevelopment.aegis.db.slots;
|
||||
|
||||
public class SlotException extends Exception {
|
||||
public SlotException(Throwable cause) {
|
@ -1,4 +1,4 @@
|
||||
package me.impy.aegis.db.slots;
|
||||
package com.beemdevelopment.aegis.db.slots;
|
||||
|
||||
public class SlotIntegrityException extends Exception {
|
||||
public SlotIntegrityException() {
|
@ -1,4 +1,4 @@
|
||||
package me.impy.aegis.db.slots;
|
||||
package com.beemdevelopment.aegis.db.slots;
|
||||
|
||||
import org.json.JSONArray;
|
||||
import org.json.JSONException;
|
@ -1,4 +1,4 @@
|
||||
package me.impy.aegis.db.slots;
|
||||
package com.beemdevelopment.aegis.db.slots;
|
||||
|
||||
public class SlotListException extends Exception {
|
||||
public SlotListException(Throwable cause) {
|
@ -1,4 +1,4 @@
|
||||
package me.impy.aegis.encoding;
|
||||
package com.beemdevelopment.aegis.encoding;
|
||||
|
||||
// modified for use in Aegis
|
||||
|
@ -1,4 +1,4 @@
|
||||
package me.impy.aegis.encoding;
|
||||
package com.beemdevelopment.aegis.encoding;
|
||||
|
||||
public class Base32Exception extends Exception {
|
||||
public Base32Exception(String message) {
|
@ -1,4 +1,4 @@
|
||||
package me.impy.aegis.encoding;
|
||||
package com.beemdevelopment.aegis.encoding;
|
||||
|
||||
import java.io.UnsupportedEncodingException;
|
||||
|
@ -1,4 +1,4 @@
|
||||
package me.impy.aegis.encoding;
|
||||
package com.beemdevelopment.aegis.encoding;
|
||||
|
||||
public class Base64Exception extends Exception {
|
||||
public Base64Exception(Throwable cause) {
|
@ -1,4 +1,4 @@
|
||||
package me.impy.aegis.encoding;
|
||||
package com.beemdevelopment.aegis.encoding;
|
||||
|
||||
// The hexadecimal utility functions in this file were taken and modified from: http://www.docjar.com/html/api/com/sun/xml/internal/bind/DatatypeConverterImpl.java.html
|
||||
// It is licensed under GPLv2 with a classpath exception.
|
@ -1,4 +1,4 @@
|
||||
package me.impy.aegis.encoding;
|
||||
package com.beemdevelopment.aegis.encoding;
|
||||
|
||||
public class HexException extends Exception {
|
||||
public HexException(String message) {
|
@ -1,4 +1,4 @@
|
||||
package me.impy.aegis.helpers;
|
||||
package com.beemdevelopment.aegis.helpers;
|
||||
|
||||
import android.text.Editable;
|
||||
import android.widget.EditText;
|
@ -1,4 +1,4 @@
|
||||
package me.impy.aegis.helpers;
|
||||
package com.beemdevelopment.aegis.helpers;
|
||||
|
||||
import android.Manifest;
|
||||
import android.content.Context;
|
@ -1,4 +1,4 @@
|
||||
package me.impy.aegis.helpers;
|
||||
package com.beemdevelopment.aegis.helpers;
|
||||
|
||||
import androidx.recyclerview.widget.RecyclerView;
|
||||
|
@ -1,4 +1,4 @@
|
||||
package me.impy.aegis.helpers;
|
||||
package com.beemdevelopment.aegis.helpers;
|
||||
|
||||
import android.app.Activity;
|
||||
import android.content.Context;
|
@ -1,4 +1,4 @@
|
||||
package me.impy.aegis.helpers;
|
||||
package com.beemdevelopment.aegis.helpers;
|
||||
|
||||
import androidx.recyclerview.widget.RecyclerView;
|
||||
import androidx.recyclerview.widget.ItemTouchHelper;
|
@ -1,4 +1,4 @@
|
||||
package me.impy.aegis.helpers;
|
||||
package com.beemdevelopment.aegis.helpers;
|
||||
|
||||
import android.content.Context;
|
||||
import androidx.annotation.ArrayRes;
|
@ -1,4 +1,4 @@
|
||||
package me.impy.aegis.helpers;
|
||||
package com.beemdevelopment.aegis.helpers;
|
||||
|
||||
import android.content.Context;
|
||||
import android.graphics.Canvas;
|
@ -1,4 +1,4 @@
|
||||
package me.impy.aegis.helpers;
|
||||
package com.beemdevelopment.aegis.helpers;
|
||||
|
||||
import android.view.View;
|
||||
|
@ -1,4 +1,4 @@
|
||||
package me.impy.aegis.helpers;
|
||||
package com.beemdevelopment.aegis.helpers;
|
||||
|
||||
import android.os.Handler;
|
||||
|
@ -1,16 +1,16 @@
|
||||
package me.impy.aegis.importers;
|
||||
package com.beemdevelopment.aegis.importers;
|
||||
|
||||
import org.json.JSONObject;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import me.impy.aegis.db.Database;
|
||||
import me.impy.aegis.db.DatabaseEntry;
|
||||
import me.impy.aegis.db.DatabaseException;
|
||||
import me.impy.aegis.db.DatabaseFile;
|
||||
import me.impy.aegis.db.DatabaseFileCredentials;
|
||||
import me.impy.aegis.db.DatabaseFileException;
|
||||
import me.impy.aegis.util.ByteInputStream;
|
||||
import com.beemdevelopment.aegis.db.Database;
|
||||
import com.beemdevelopment.aegis.db.DatabaseEntry;
|
||||
import com.beemdevelopment.aegis.db.DatabaseException;
|
||||
import com.beemdevelopment.aegis.db.DatabaseFile;
|
||||
import com.beemdevelopment.aegis.db.DatabaseFileCredentials;
|
||||
import com.beemdevelopment.aegis.db.DatabaseFileException;
|
||||
import com.beemdevelopment.aegis.util.ByteInputStream;
|
||||
|
||||
public class AegisImporter extends DatabaseImporter {
|
||||
private DatabaseFileCredentials _creds;
|
@ -1,14 +1,13 @@
|
||||
package me.impy.aegis.importers;
|
||||
package com.beemdevelopment.aegis.importers;
|
||||
|
||||
import java.lang.reflect.InvocationTargetException;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collections;
|
||||
import java.util.LinkedHashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import me.impy.aegis.db.DatabaseEntry;
|
||||
import me.impy.aegis.util.ByteInputStream;
|
||||
import com.beemdevelopment.aegis.db.DatabaseEntry;
|
||||
import com.beemdevelopment.aegis.util.ByteInputStream;
|
||||
|
||||
public abstract class DatabaseImporter {
|
||||
private static Map<String, Class<? extends DatabaseImporter>> _importers;
|
@ -1,4 +1,4 @@
|
||||
package me.impy.aegis.importers;
|
||||
package com.beemdevelopment.aegis.importers;
|
||||
|
||||
public class DatabaseImporterException extends Exception {
|
||||
public DatabaseImporterException(Throwable cause) {
|
@ -1,9 +1,9 @@
|
||||
package me.impy.aegis.otp;
|
||||
package com.beemdevelopment.aegis.otp;
|
||||
|
||||
import android.net.Uri;
|
||||
|
||||
import me.impy.aegis.encoding.Base32;
|
||||
import me.impy.aegis.encoding.Base32Exception;
|
||||
import com.beemdevelopment.aegis.encoding.Base32;
|
||||
import com.beemdevelopment.aegis.encoding.Base32Exception;
|
||||
|
||||
public class GoogleAuthInfo {
|
||||
private OtpInfo _info;
|
@ -1,4 +1,4 @@
|
||||
package me.impy.aegis.otp;
|
||||
package com.beemdevelopment.aegis.otp;
|
||||
|
||||
public class GoogleAuthInfoException extends Exception {
|
||||
public GoogleAuthInfoException(Throwable cause) {
|
@ -1,4 +1,4 @@
|
||||
package me.impy.aegis.otp;
|
||||
package com.beemdevelopment.aegis.otp;
|
||||
|
||||
public class OtpInfoException extends Exception {
|
||||
public OtpInfoException(Throwable cause) {
|
@ -1,10 +1,10 @@
|
||||
package me.impy.aegis.otp;
|
||||
package com.beemdevelopment.aegis.otp;
|
||||
|
||||
import com.beemdevelopment.aegis.crypto.otp.TOTP;
|
||||
|
||||
import org.json.JSONException;
|
||||
import org.json.JSONObject;
|
||||
|
||||
import me.impy.aegis.crypto.otp.TOTP;
|
||||
|
||||
public class TotpInfo extends OtpInfo {
|
||||
private int _period;
|
||||
|
@ -1,12 +1,12 @@
|
||||
package me.impy.aegis.ui;
|
||||
package com.beemdevelopment.aegis.ui;
|
||||
|
||||
import android.os.Bundle;
|
||||
import androidx.appcompat.app.AppCompatActivity;
|
||||
import android.view.WindowManager;
|
||||
|
||||
import me.impy.aegis.AegisApplication;
|
||||
import me.impy.aegis.Preferences;
|
||||
import me.impy.aegis.R;
|
||||
import com.beemdevelopment.aegis.AegisApplication;
|
||||
import com.beemdevelopment.aegis.Preferences;
|
||||
import com.beemdevelopment.aegis.R;
|
||||
|
||||
public abstract class AegisActivity extends AppCompatActivity {
|
||||
private AegisApplication _app;
|
@ -1,4 +1,4 @@
|
||||
package me.impy.aegis.ui;
|
||||
package com.beemdevelopment.aegis.ui;
|
||||
|
||||
import android.os.Bundle;
|
||||
|
@ -1,4 +1,4 @@
|
||||
package me.impy.aegis.ui.preferences;
|
||||
package com.beemdevelopment.aegis.ui.preferences;
|
||||
|
||||
import android.content.Context;
|
||||
import android.os.Build;
|
@ -1,13 +1,15 @@
|
||||
package me.impy.aegis.ui.tasks;
|
||||
package com.beemdevelopment.aegis.ui.tasks;
|
||||
|
||||
import android.content.Context;
|
||||
|
||||
import com.beemdevelopment.aegis.crypto.CryptoUtils;
|
||||
import com.beemdevelopment.aegis.crypto.SCryptParameters;
|
||||
|
||||
import javax.crypto.SecretKey;
|
||||
|
||||
import me.impy.aegis.R;
|
||||
import me.impy.aegis.crypto.CryptoUtils;
|
||||
import me.impy.aegis.crypto.SCryptParameters;
|
||||
import me.impy.aegis.db.slots.PasswordSlot;
|
||||
import com.beemdevelopment.aegis.R;
|
||||
|
||||
import com.beemdevelopment.aegis.db.slots.PasswordSlot;
|
||||
|
||||
public class DerivationTask extends ProgressDialogTask<DerivationTask.Params, SecretKey> {
|
||||
private Callback _cb;
|
@ -1,11 +1,11 @@
|
||||
package me.impy.aegis.ui.tasks;
|
||||
package com.beemdevelopment.aegis.ui.tasks;
|
||||
|
||||
import android.app.ProgressDialog;
|
||||
import android.content.Context;
|
||||
import android.os.AsyncTask;
|
||||
import android.os.Process;
|
||||
import androidx.annotation.CallSuper;
|
||||
import me.impy.aegis.ui.Dialogs;
|
||||
import com.beemdevelopment.aegis.ui.Dialogs;
|
||||
|
||||
public abstract class ProgressDialogTask<Params, Result> extends AsyncTask<Params, Void, Result> {
|
||||
private ProgressDialog _dialog;
|
@ -1,18 +1,20 @@
|
||||
package me.impy.aegis.ui.tasks;
|
||||
package com.beemdevelopment.aegis.ui.tasks;
|
||||
|
||||
import android.content.Context;
|
||||
|
||||
import com.beemdevelopment.aegis.crypto.MasterKey;
|
||||
|
||||
import javax.crypto.Cipher;
|
||||
import javax.crypto.SecretKey;
|
||||
|
||||
import me.impy.aegis.R;
|
||||
import me.impy.aegis.crypto.MasterKey;
|
||||
import me.impy.aegis.db.slots.FingerprintSlot;
|
||||
import me.impy.aegis.db.slots.PasswordSlot;
|
||||
import me.impy.aegis.db.slots.Slot;
|
||||
import me.impy.aegis.db.slots.SlotList;
|
||||
import me.impy.aegis.db.slots.SlotException;
|
||||
import me.impy.aegis.db.slots.SlotIntegrityException;
|
||||
import com.beemdevelopment.aegis.R;
|
||||
|
||||
import com.beemdevelopment.aegis.db.slots.FingerprintSlot;
|
||||
import com.beemdevelopment.aegis.db.slots.PasswordSlot;
|
||||
import com.beemdevelopment.aegis.db.slots.Slot;
|
||||
import com.beemdevelopment.aegis.db.slots.SlotList;
|
||||
import com.beemdevelopment.aegis.db.slots.SlotException;
|
||||
import com.beemdevelopment.aegis.db.slots.SlotIntegrityException;
|
||||
|
||||
public class SlotListTask<T extends Slot> extends ProgressDialogTask<SlotListTask.Params, MasterKey> {
|
||||
private Callback _cb;
|
@ -1,22 +1,23 @@
|
||||
package me.impy.aegis.ui.views;
|
||||
package com.beemdevelopment.aegis.ui.views;
|
||||
|
||||
import androidx.recyclerview.widget.RecyclerView;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
|
||||
import com.beemdevelopment.aegis.helpers.ItemTouchHelperAdapter;
|
||||
import com.beemdevelopment.aegis.otp.HotpInfo;
|
||||
import com.beemdevelopment.aegis.otp.OtpInfo;
|
||||
import com.beemdevelopment.aegis.otp.OtpInfoException;
|
||||
import com.beemdevelopment.aegis.otp.TotpInfo;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
import java.util.UUID;
|
||||
|
||||
import me.impy.aegis.R;
|
||||
import me.impy.aegis.db.DatabaseEntry;
|
||||
import me.impy.aegis.helpers.ItemTouchHelperAdapter;
|
||||
import me.impy.aegis.otp.HotpInfo;
|
||||
import me.impy.aegis.otp.OtpInfo;
|
||||
import me.impy.aegis.otp.OtpInfoException;
|
||||
import me.impy.aegis.otp.TotpInfo;
|
||||
import com.beemdevelopment.aegis.R;
|
||||
import com.beemdevelopment.aegis.db.DatabaseEntry;
|
||||
|
||||
public class EntryAdapter extends RecyclerView.Adapter<EntryHolder> implements ItemTouchHelperAdapter {
|
||||
private List<DatabaseEntry> _entries;
|
@ -1,19 +1,11 @@
|
||||
package me.impy.aegis.ui.views;
|
||||
package com.beemdevelopment.aegis.ui.views;
|
||||
|
||||
import androidx.recyclerview.widget.RecyclerView;
|
||||
import android.view.View;
|
||||
import android.widget.ImageView;
|
||||
import android.widget.LinearLayout;
|
||||
import android.widget.TextView;
|
||||
|
||||
import me.impy.aegis.R;
|
||||
import me.impy.aegis.crypto.KeyStoreHandle;
|
||||
import me.impy.aegis.crypto.KeyStoreHandleException;
|
||||
import me.impy.aegis.db.slots.FingerprintSlot;
|
||||
import me.impy.aegis.db.slots.PasswordSlot;
|
||||
import me.impy.aegis.db.slots.RawSlot;
|
||||
import me.impy.aegis.db.slots.Slot;
|
||||
import me.impy.aegis.helpers.FingerprintHelper;
|
||||
import com.beemdevelopment.aegis.R;
|
||||
|
||||
public class GroupHolder extends RecyclerView.ViewHolder {
|
||||
private TextView _slotName;
|
@ -1,4 +1,4 @@
|
||||
package me.impy.aegis.util;
|
||||
package com.beemdevelopment.aegis.util;
|
||||
|
||||
import java.io.ByteArrayInputStream;
|
||||
import java.io.ByteArrayOutputStream;
|
@ -1,11 +1,11 @@
|
||||
package me.impy.aegis;
|
||||
package com.beemdevelopment.aegis;
|
||||
|
||||
import org.junit.Test;
|
||||
|
||||
import java.security.InvalidKeyException;
|
||||
import java.security.NoSuchAlgorithmException;
|
||||
|
||||
import me.impy.aegis.crypto.otp.HOTP;
|
||||
import com.beemdevelopment.aegis.crypto.otp.HOTP;
|
||||
|
||||
import static org.junit.Assert.*;
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue