Открытые/закрытые ключи RSA в YAML

Мне нужно сохранить пару ключей RSA в файле YAML, но все еще ограниченное понимание синтаксиса yaml и отсутствие примеров позволяет мне искать ответ.

Я только начну работать с тем, что у меня есть, но мне было интересно, сможет ли кто-нибудь быстро и кратко объяснить, как я могу хранить что-то подобное в ямле.

Ответ 1

Вы можете хранить свои ключи в виде текста ( "ASCII-armored" /base 64 encoded). Из Википедии синтаксис для многострочных строк в YAML:

- title: An example multi-line string in YAML
  body : |
    This is a multi-line string.
    "special" metacharacters may
    appear here. The extent of this string is
    indicated by indentation.

Ответ 2

Начиная с 27 октября 2016 года, это первый результат в Google при поиске "yaml rsa key", поэтому я хотел бы добавить ответ на конкретный синтаксис, необходимый для ключей RSA в Yaml.

Если вы включите ключ в одну строку в файле yaml, проблем нет. Если вы хотите разбить его в разных строках для удобства чтения, и вы не можете принимать символы новой строки в сгенерированной строке, единственным вариантом, по-видимому, являются двойные кавычки с escape-кодами.

В моем случае мне понадобилась сгенерированная однострочная строка без пробелов, так как определение ключа использовалось механизмом шаблонов для вставки ключа в переменную script. Следующий синтаксис присоединяется к каждой строке без пробелов (обратите внимание на "\" в каждой строке для удаления строк перевода):

    yourKey: "-----BEGIN PUBLIC KEY-----\
      xxx...\
      yyy...\
      zzz...\
      -----END PUBLIC KEY-----"

    result: "-----BEGIN PUBLIC KEY-----xxx...yyy...zzz...-----END PUBLIC KEY-----"

Очень хорошую ссылку на форматы для литералов можно найти здесь на SO: fooobar.com/questions/12815/...

Ответ 3

Рекомендуется хранить ключи в файле yaml, создавая файлы pem

 security:
   publickeypemfile: /config/env/xyz.pem
   keystorefile: /secret/pqr.jks
   testmode: true


xyz.pem: |-
  -----BEGIN PUBLIC KEY——
Line 1
Line 2
Line 3
……………………………………….
-----END PUBLIC KEY-----