Эквивалент API защиты данных в Linux

Microsoft Windows 2000 и более поздние версии предоставляют API защиты данных (DPAPI), который шифрует данные для контекста для каждого пользователя или для каждой системы. Вызывающий не предоставляет ключ для шифрования данных. Скорее, данные шифруются ключом, полученным из пользовательских или системных учетных данных.

Этот API удобно открыть в .NET с помощью ProtectedData class:

// Encrypts the data in a specified byte array and returns a byte array
// that contains the encrypted data.
public static byte[] Protect(
    byte[] userData,
    byte[] optionalEntropy,
    DataProtectionScope scope
)

// Decrypts the data in a specified byte array and returns a byte array
// that contains the decrypted data.
public static byte[] Unprotect(
    byte[] encryptedData,
    byte[] optionalEntropy,
    DataProtectionScope scope
)

Есть ли эквивалентный API в Linux? Бонус будет заключаться в том, что он удобно интегрируется с Java.

Каковы мои альтернативы, если их нет?

Ответ 1

Он больше не выглядит (или менее) продвинутым, чем PGP, или Довольно хорошая конфиденциальность. Существуют API-интерфейсы для PGP, и тот, который, как я помню, говорит доброжелательно, - Bouncy Castle.

Здесь пример того, как кто-то использовал Bouncy Castle.

В зависимости от ваших конкретных потребностей могут быть доступны лучшие API или решения.

Ответ 2

В Linux существует два варианта хранения ключей уровня пользователя:

Это не касается необходимости хранения хранилища на системном уровне.