Как я могу использовать RusTLS для шифрования байтового фрагмента с использованием известного открытого ключа и заполнения PKCS1? - PullRequest
0 голосов
/ 31 августа 2018

Чтобы создавать релизы GitHub из Travis CI, вам нужно использовать открытые ключи, которые они предоставляют , для шифрования секретов, которые можно проверить в проекте.

Мне удалось это сделать, используя ящик openssl (v0.10.11) :

extern crate base64;
extern crate openssl;

use openssl::rsa::{Padding, Rsa};
use std::{error, fs};

fn main() -> Result<(), Box<dyn error::Error>> {
  let data = b"some data";

  let pub_key = fs::read_to_string("./key.pem")?; // Read the public key.
  let rsa = Rsa::public_key_from_pem(pub_key.as_bytes())?;

  let mut res = vec![0; rsa.size() as usize];
  rsa.public_encrypt(data, &mut res, Padding::PKCS1)?;

  let encrypted = base64::encode(&res);
  println!("Encrypted Data: \n{}", encrypted);
  Ok(())
}

ссылка на репро

Однако использование OpenSSL сопряжено с несколькими компромиссами. В частности: для работы кроссплатформенных сборок требуется некоторая работа .

Я рассматривал шелест как альтернативу, и мне было интересно, каков эквивалент кода выше.

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