Как сохранить закрытый ключ в строковом литерале в C? - PullRequest
0 голосов
/ 11 октября 2018

Как сохранить закрытый ключ в строковом литерале в C?

например,

-----BEGIN RSA PRIVATE KEY-----
MIIBOgIBAAJBANuwDJCXuv/FszouyCcDNIn6++/8EtdVpzvLKpqLdK/fq6Y3bIjD
6fPVCNwANeJsSHKexi4qPkBpZ8/C0Ssnp48CAwEAAQJAHtDmIk42W/R2fJ3dU6Oe
dhBv0K0SU4RfTgLkugL/3j+GIQCiFXBkfO/eG6J8vQlOQaGbK7Zu6bSnCoCdiDmR
sQIhAPysf1AIbRoQGO6HYtAoTUOMlih7dyh4O3jKCqQUa60XAiEA3pRju0/0g2JK
bdSct/kqii1o+RydH79WCnKVgVvulEkCIFdbRADliOLT4erFv/H7nQrXliqU1ROW
zejq4VbtAHUtAiBRP5OkRYx5BUEsFGdc1MyNggQGo0ZL13ld+PPQM7HEWQIhAIU1
InlMgmqV1GzEXsAwRH5RH2zEqAe9mKkU7SZWT0rI
-----END RSA PRIVATE KEY-----
  1. Могу ли я удалить переводы строк в каждой строке?
  2. Что такоелучший способ определить несколько строк строкового литерала в C?

1 Ответ

0 голосов
/ 11 октября 2018

Независимо от проблем безопасности, связанных с таким «решением», вы можете сделать следующее:

const char* key =
    "MIIBOgIBAAJBANuwDJCXuv/FszouyCcDNIn6++/8EtdVpzvLKpqLdK/fq6Y3bIjD"
    "6fPVCNwANeJsSHKexi4qPkBpZ8/C0Ssnp48CAwEAAQJAHtDmIk42W/R2fJ3dU6Oe"
    "dhBv0K0SU4RfTgLkugL/3j+GIQCiFXBkfO/eG6J8vQlOQaGbK7Zu6bSnCoCdiDmR"
    "sQIhAPysf1AIbRoQGO6HYtAoTUOMlih7dyh4O3jKCqQUa60XAiEA3pRju0/0g2JK"
    "bdSct/kqii1o+RydH79WCnKVgVvulEkCIFdbRADliOLT4erFv/H7nQrXliqU1ROW"
    "zejq4VbtAHUtAiBRP5OkRYx5BUEsFGdc1MyNggQGo0ZL13ld+PPQM7HEWQIhAIU1"
    "InlMgmqV1GzEXsAwRH5RH2zEqAe9mKkU7SZWT0rI";

Указатель key теперь указывает на закрытый ключ, встроенный в исполняемый файл.Он не включает символы новой строки, потому что эти строковые литералы автоматически объединяются во время компиляции, независимо от того, какой пробел находится между ними.

Как уже было сказано, но я хотел бы повторить, что нечто подобное не должноне должно быть сделано с любыми ключами и данными, которые имеют значение.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...