У меня была эта та же проблема с фонами, не обнаруживающимися на экране входа в систему. Однако проблема только произошла, когда я пытался использовать файлы, я передал от резервного внешнего жесткого диска. Оказывается, что это - просто проблема полномочий. Если Вы скопировали файлы с другого местоположения, они могут только быть читаемым пользователем/группой (но не другой/мир читаемый). Так как глобальный экран входа в систему не имеет Ваших персональных полномочий, он не может получить доступ к фоновым изображениям, если они не читаемый мир (не делайте их миром перезаписываемый хотя).
Так находят фон (фоны), Вы хотите использовать, и затем изменить их полномочия как так:
chmod o-r [некоторый файл с плохими полномочиями]
Это, надо надеяться, решит Ваш экранный вопрос входа в систему.
И Crypto ++, и OpenSSL могут обрабатывать закодированные ключи PKCS # 8. В crypto ++ вы можете генерировать ключи и преобразовывать их в буфер PKCS # 8 следующим образом
AutoSeededRandomPool rng;
RSAES_OAEP_SHA_Decryptor priv(rng, 2048);
string der;
StringSink der_sink(der);
priv.DEREncode(der_sink);
der_sink.MessageEnd();
// der.data() is the bytes you need
. Теперь вам просто нужно передать байты в PHP. Вы можете сохранить его в файле и отправить в сообщении.
Единственная проблема заключается в том, что интерфейс PHP OpenSSL принимает только PKCS # 8 в кодировке PEM. Вы можете легко преобразовать буфер, закодированный в DER, в PEM, как в PHP,
<?php
function pkcs8_to_pem($der) {
static $BEGIN_MARKER = "-----BEGIN PRIVATE KEY-----";
static $END_MARKER = "-----END PRIVATE KEY-----";
$value = base64_encode($der);
$pem = $BEGIN_MARKER . "\n";
$pem .= chunk_split($value, 64, "\n");
$pem .= $END_MARKER . "\n";
return $pem;
}
?>
Вы также можете преобразовать PKCS # 8 в PEM на C ++, если хотите. Алгоритм очень прост, как вы можете видеть из кода PHP.
OpenSSL настолько распространен в наши дни. Я не вижу причин использовать Crypto ++ для таких распространенных криптографических приложений.
Попробуйте эту ссылку: http://www.cryptopp.com/fom-serve/cache/62.html
Похоже, вам понадобится использовать PKCS # 8 и преобразовать из формата DER в формат PEM, чтобы иметь возможность использовать ключи в OpenSSL. Я не уверен, что вы сможете использовать один файл для обоих.
Я использовал только OpenSSL, поэтому я не уверен, какие у вас есть возможности с Crypto ++. Я нашел ссылку выше, выполнив поиск в Google по следующим терминам: Crypto ++ RSA OpenSSL.
DER - это двоичный формат OpenSSL для ключей и сертификатов.
PEM - это текстовый формат OpenSSL.