Программы на C++. Форум разработчиков
-
Anonymous
Клиент строго соответствует FIPS (FIPS 140-3)
Сообщение
Anonymous »
Я изучаю соответствие FIPS следующих клиентов:
- Клиенты Java, использующие поставщик BouncyCastle FIPS и поставщик BouncyCastleJSSE
- Клиенты C++, использующие libcurl (бэкэнд OpenSSL) с использованием поставщика OpenSSL fips.
В моем приложении Java
Зависимости:
Задайте следующие свойства:
Код: Выделить всё
System.setProperty("org.bouncycastle.fips.approved_only", Boolean.TRUE.toString());
System.setProperty("jdk.tls.trustNameService", Boolean.TRUE.toString());
System.setProperty("java.util.logging.manager", "org.apache.logging.log4j.jul.LogManager");
Выдержки кода:
Код: Выделить всё
if( Security.getProvider(FIPS_PROVIDER_NAME) == null)
{
Class bcFipsClass = Class.forName("org.bouncycastle.jcajce.provider.BouncyCastleFipsProvider");
Provider bcFipsObj = (Provider)bcFipsClass.getDeclaredConstructor().newInstance();
Security.insertProviderAt(bcFipsObj, 1);
}
if( Security.getProvider(FIPS_JSSE_PROVIDER_NAME) == null)
{
Class bcJsseClass = Class.forName("org.bouncycastle.jsse.provider.BouncyCastleJsseProvider");
Constructor bcJsseClassConstructor = bcJsseClass.getConstructor(String.class);
Provider bcJsseObj = (Provider)bcJsseClassConstructor.newInstance("fips:BCFIPS");
Security.insertProviderAt(bcJsseObj, 2);
}
String type = (Security.getProvider("BCJSSE") != null) ? "BCFKS" : "PKCS12";
..
// generate truststore from ca pem file
KeyStore trustStore = null;
if ( caPemFile != null && !caPemFile.isBlank() )
{
try ( final InputStream inputStream = new FileInputStream(caPemFile) )
{
CertificateFactory certificateFactory = CertificateFactory.getInstance("X.509");
Collection
Подробнее здесь: [url]https://stackoverflow.com/questions/79900413/client-strict-fips-compliant-fips-140-3[/url]
1772813753
Anonymous
Я изучаю соответствие FIPS следующих клиентов:
[list]
[*]Клиенты Java, использующие поставщик BouncyCastle FIPS и поставщик BouncyCastleJSSE
[*]Клиенты C++, использующие libcurl (бэкэнд OpenSSL) с использованием поставщика OpenSSL fips.
[/list]
[b]В моем приложении Java[/b]
[b]Зависимости[/b]:
[img]https://i.sstatic.net/eUpQqCvI.png[/img]
[b]Задайте следующие свойства:[/b]
[code] System.setProperty("org.bouncycastle.fips.approved_only", Boolean.TRUE.toString());
System.setProperty("jdk.tls.trustNameService", Boolean.TRUE.toString());
System.setProperty("java.util.logging.manager", "org.apache.logging.log4j.jul.LogManager");
[/code]
[b]Выдержки кода:[/b]
[code] if( Security.getProvider(FIPS_PROVIDER_NAME) == null)
{
Class bcFipsClass = Class.forName("org.bouncycastle.jcajce.provider.BouncyCastleFipsProvider");
Provider bcFipsObj = (Provider)bcFipsClass.getDeclaredConstructor().newInstance();
Security.insertProviderAt(bcFipsObj, 1);
}
if( Security.getProvider(FIPS_JSSE_PROVIDER_NAME) == null)
{
Class bcJsseClass = Class.forName("org.bouncycastle.jsse.provider.BouncyCastleJsseProvider");
Constructor bcJsseClassConstructor = bcJsseClass.getConstructor(String.class);
Provider bcJsseObj = (Provider)bcJsseClassConstructor.newInstance("fips:BCFIPS");
Security.insertProviderAt(bcJsseObj, 2);
}
String type = (Security.getProvider("BCJSSE") != null) ? "BCFKS" : "PKCS12";
..
// generate truststore from ca pem file
KeyStore trustStore = null;
if ( caPemFile != null && !caPemFile.isBlank() )
{
try ( final InputStream inputStream = new FileInputStream(caPemFile) )
{
CertificateFactory certificateFactory = CertificateFactory.getInstance("X.509");
Collection
Подробнее здесь: [url]https://stackoverflow.com/questions/79900413/client-strict-fips-compliant-fips-140-3[/url]