1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/archermind-ti-armadillo

Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

Armadillo

Обзор

Реализация предпочтений для секретных данных, обеспечивающая конфиденциальность, целостность и аутентичность. По умолчанию использует AES-GCM, BCrypt и HKDF в качестве криптографических примитивов.

Особенности

  • Современное шифрование: аутентифицированное шифрование с использованием AES-GCM, функции получения ключей Bcrypt и HKDF.
  • Гибкость: множество настроек и переключателей с разумными значениями по умолчанию.
  • Модульность: возможность использовать собственную реализацию симметричного шифра, растяжения ключа, обфускации данных и т. д.
  • Лёгкость: не требует массивных зависимостей, таких как BouncyCastle или Facebook Conceal.

Резюме безопасности

  • Использование с предоставленным пользователем паролем (и надёжным хешем пароля, например, по умолчанию BCrypt): ваши данные надёжно зашифрованы.
  • Использование без предоставленного пользователем пароля: ваши данные обфусцированы и не могут быть легко изменены или прочитаны злоумышленником, имеющим доступ к устройству.
  • Благодаря использованию отпечатков пальцев, просто скопировать данные на другое устройство и использовать их там непросто.
  • Шифрование недетерминировано, что означает, что даже если вы зашифруете одни и те же данные, они будут выглядеть по-разному.
  • Все зашифрованные данные защищены от модификации внешним злоумышленником при условии, что само шифрование не будет обойдено.

Быстрый старт

  1. Добавьте репозиторий mavenCentral.

    allprojects {
        repositories {
            ...
            mavenCentral()
        }
    }
  2. Добавьте следующее в зависимости.

    implementation 'com.gitee.archermind-ti:armadillo:1.0.0'

Как использовать

Armadillo.Builder builder = Armadillo.create(this, "your preferences file name")
        .encryptionFingerprint(this, "replace your secret(custom)");
ArmadilloSharedPreferences encryptedPreferences=encryptedPreferences = builder.build();

encryptedPreferences.putString("key","value").flush();
String value = encryptedPreferences.getString("key", null);

Пример показывает некоторые конфигурации, доступные разработчику:

String userId = ...
String openHarmonyId=...
    
ArmadilloSharedPreferences preferences = Armadillo.create(context, "myCustomPreferences")
        .password("mySuperSecretPassword".toCharArray()) //использовать пароль, предоставленный пользователем
        .securityProvider(Security.getProvider("BC")) //использовать провайдера безопасности bouncy-castle
        .keyStretchingFunction(new PBKDF2KeyStretcher()) //использовать PBKDF2 в качестве пользовательской KDF для пароля
        .contentKeyDigest(Bytes.from(openHarmonyId).array()) //использовать пользовательский дайджест соли/ключа контента
        .secureRandom(new SecureRandom()) //предоставить собственный безопасный генератор случайных чисел для генерации соли/IV
        .encryptionFingerprint(context, userId.getBytes(StandardCharsets.UTF_8)) //добавить идентификатор пользователя в отпечаток пальца
        .supportVerifyPassword(true) //включает дополнительную поддержку проверки пароля `.isValidPassword()`
        .enableDerivedPasswordCache(true) //включить кэширование для производных паролей, делая последующие геттеры быстрее
        .build();

Компиляция

  • Клонируйте проект локально.
  • Используйте DevEco Studio, чтобы открыть Armadillo, а затем дождитесь завершения сборки Gradle.
  • Нажмите «Выполнить», чтобы запустить (на реальном устройстве может потребоваться настроить подпись).

Лицензия

Copyright 2017 Patrick Favre-Bulle

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

Комментарии ( 0 )

Вы можете оставить комментарий после Вход в систему

Введение

Описание недоступно Развернуть Свернуть
Apache-2.0
Отмена

Обновления (1)

все

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://api.gitlife.ru/oschina-mirror/archermind-ti-armadillo.git
git@api.gitlife.ru:oschina-mirror/archermind-ti-armadillo.git
oschina-mirror
archermind-ti-armadillo
archermind-ti-armadillo
master