Added RSA encryption

This commit is contained in:
Martin Slot 2023-12-19 21:05:13 +01:00
parent d806ad3e5c
commit a7036c0670
9 changed files with 491 additions and 13 deletions

305
Cargo.lock generated
View File

@ -40,18 +40,39 @@ version = "1.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa"
[[package]]
name = "base64ct"
version = "1.6.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8c3c1a368f70d6cf7302d78f8f7093da241fb8e8807c05cc9e51a125895a6d5b"
[[package]]
name = "bitflags"
version = "1.3.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
[[package]]
name = "block-buffer"
version = "0.10.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71"
dependencies = [
"generic-array",
]
[[package]]
name = "bumpalo"
version = "3.12.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3c6ed94e98ecff0c12dd1b04c15ec0d7d9458ca8fe806cea6f12954efe74c63b"
[[package]]
name = "byteorder"
version = "1.5.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b"
[[package]]
name = "bytes"
version = "1.4.0"
@ -135,12 +156,29 @@ dependencies = [
[[package]]
name = "commander_kernel"
version = "0.1.0"
version = "0.1.1"
dependencies = [
"bytes",
"criterion",
"prost",
"prost-build",
"rand",
"rsa",
]
[[package]]
name = "const-oid"
version = "0.9.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c2459377285ad874054d797f3ccebf984978aa39129f6eafde5cdc8315b612f8"
[[package]]
name = "cpufeatures"
version = "0.2.11"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ce420fe07aecd3e67c5f910618fe65e94158f6dcc0adf44e00d69ce2bdfe0fd0"
dependencies = [
"libc",
]
[[package]]
@ -222,6 +260,38 @@ dependencies = [
"cfg-if",
]
[[package]]
name = "crypto-common"
version = "0.1.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3"
dependencies = [
"generic-array",
"typenum",
]
[[package]]
name = "der"
version = "0.7.8"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "fffa369a668c8af7dbf8b5e56c9f744fbd399949ed171606040001947de40b1c"
dependencies = [
"const-oid",
"pem-rfc7468",
"zeroize",
]
[[package]]
name = "digest"
version = "0.10.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292"
dependencies = [
"block-buffer",
"const-oid",
"crypto-common",
]
[[package]]
name = "either"
version = "1.8.1"
@ -275,6 +345,27 @@ version = "0.4.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0ce7134b9999ecaf8bcd65542e436736ef32ddca1b3e06094cb6ec5755203b80"
[[package]]
name = "generic-array"
version = "0.14.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a"
dependencies = [
"typenum",
"version_check",
]
[[package]]
name = "getrandom"
version = "0.2.11"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "fe9006bed769170c11f845cf00c7c1e9092aeb3f268e007c3e760ac68008070f"
dependencies = [
"cfg-if",
"libc",
"wasi",
]
[[package]]
name = "half"
version = "1.8.2"
@ -376,12 +467,21 @@ name = "lazy_static"
version = "1.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646"
dependencies = [
"spin",
]
[[package]]
name = "libc"
version = "0.2.144"
version = "0.2.151"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2b00cc1c228a6782d0f076e7b232802e0c5689d41bb5df366f2a6b6621cfdfe1"
checksum = "302d7ab3130588088d277783b1e2d2e10c9e9e4a16dd9050e6ec93fb3e7048f4"
[[package]]
name = "libm"
version = "0.2.8"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4ec2a862134d2a7d32d7983ddcdd1c4923530833c9f2ea1a44fc5fa473989058"
[[package]]
name = "linux-raw-sys"
@ -413,6 +513,44 @@ version = "0.8.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e5ce46fe64a9d73be07dcbe690a38ce1b293be448fd8ce1e6c1b8062c9f72c6a"
[[package]]
name = "num-bigint-dig"
version = "0.8.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "dc84195820f291c7697304f3cbdadd1cb7199c0efc917ff5eafd71225c136151"
dependencies = [
"byteorder",
"lazy_static",
"libm",
"num-integer",
"num-iter",
"num-traits",
"rand",
"smallvec",
"zeroize",
]
[[package]]
name = "num-integer"
version = "0.1.45"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "225d3389fb3509a24c93f5c29eb6bde2586b98d9f016636dff58d7c6f7569cd9"
dependencies = [
"autocfg",
"num-traits",
]
[[package]]
name = "num-iter"
version = "0.1.43"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7d03e6c028c5dc5cac6e2dec0efda81fc887605bb3d884578bb6d6bf7514e252"
dependencies = [
"autocfg",
"num-integer",
"num-traits",
]
[[package]]
name = "num-traits"
version = "0.2.15"
@ -420,6 +558,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "578ede34cf02f8924ab9447f50c28075b4d3e5b269972345e7e0372b38c6cdcd"
dependencies = [
"autocfg",
"libm",
]
[[package]]
@ -450,6 +589,15 @@ version = "6.5.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ceedf44fb00f2d1984b0bc98102627ce622e083e49a5bacdb3e514fa4238e267"
[[package]]
name = "pem-rfc7468"
version = "0.7.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "88b39c9bfcfc231068454382784bb460aae594343fb030d46e9f50a645418412"
dependencies = [
"base64ct",
]
[[package]]
name = "petgraph"
version = "0.6.3"
@ -460,6 +608,27 @@ dependencies = [
"indexmap",
]
[[package]]
name = "pkcs1"
version = "0.7.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c8ffb9f10fa047879315e6625af03c164b16962a5368d724ed16323b68ace47f"
dependencies = [
"der",
"pkcs8",
"spki",
]
[[package]]
name = "pkcs8"
version = "0.10.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f950b2377845cebe5cf8b5165cb3cc1a5e0fa5cfa3e1f7f55707d8fd82e0a7b7"
dependencies = [
"der",
"spki",
]
[[package]]
name = "plotters"
version = "0.3.4"
@ -488,6 +657,12 @@ dependencies = [
"plotters-backend",
]
[[package]]
name = "ppv-lite86"
version = "0.2.17"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de"
[[package]]
name = "prettyplease"
version = "0.1.25"
@ -570,6 +745,36 @@ dependencies = [
"proc-macro2",
]
[[package]]
name = "rand"
version = "0.8.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404"
dependencies = [
"libc",
"rand_chacha",
"rand_core",
]
[[package]]
name = "rand_chacha"
version = "0.3.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88"
dependencies = [
"ppv-lite86",
"rand_core",
]
[[package]]
name = "rand_core"
version = "0.6.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c"
dependencies = [
"getrandom",
]
[[package]]
name = "rayon"
version = "1.7.0"
@ -616,6 +821,27 @@ version = "0.7.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a5996294f19bd3aae0453a862ad728f60e6600695733dd5df01da90c54363a3c"
[[package]]
name = "rsa"
version = "0.9.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5d0e5124fcb30e76a7e79bfee683a2746db83784b86289f6251b54b7950a0dfc"
dependencies = [
"const-oid",
"digest",
"num-bigint-dig",
"num-integer",
"num-traits",
"pkcs1",
"pkcs8",
"rand_core",
"sha2",
"signature",
"spki",
"subtle",
"zeroize",
]
[[package]]
name = "rustix"
version = "0.37.19"
@ -682,6 +908,55 @@ dependencies = [
"serde",
]
[[package]]
name = "sha2"
version = "0.10.8"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "793db75ad2bcafc3ffa7c68b215fee268f537982cd901d132f89c6343f3a3dc8"
dependencies = [
"cfg-if",
"cpufeatures",
"digest",
]
[[package]]
name = "signature"
version = "2.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "77549399552de45a898a580c1b41d445bf730df867cc44e6c0233bbc4b8329de"
dependencies = [
"digest",
"rand_core",
]
[[package]]
name = "smallvec"
version = "1.11.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4dccd0940a2dcdf68d092b8cbab7dc0ad8fa938bf95787e1b916b0e3d0e8e970"
[[package]]
name = "spin"
version = "0.5.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6e63cff320ae2c57904679ba7cb63280a3dc4613885beafb148ee7bf9aa9042d"
[[package]]
name = "spki"
version = "0.7.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "d91ed6c858b01f942cd56b37a94b3e0a1798290327d1236e4d9cf4eaca44d29d"
dependencies = [
"base64ct",
"der",
]
[[package]]
name = "subtle"
version = "2.5.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "81cdd64d312baedb58e21336b31bc043b77e01cc99033ce76ef539f78e965ebc"
[[package]]
name = "syn"
version = "1.0.109"
@ -733,12 +1008,24 @@ dependencies = [
"serde_json",
]
[[package]]
name = "typenum"
version = "1.17.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "42ff0bf0c66b8238c6f3b578df37d0b7848e55df8577b3f74f92a69acceeb825"
[[package]]
name = "unicode-ident"
version = "1.0.8"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "e5464a87b239f13a63a501f2701565754bae92d243d4bb7eb12f6d57d2269bf4"
[[package]]
name = "version_check"
version = "0.9.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f"
[[package]]
name = "walkdir"
version = "2.3.3"
@ -749,6 +1036,12 @@ dependencies = [
"winapi-util",
]
[[package]]
name = "wasi"
version = "0.11.0+wasi-snapshot-preview1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423"
[[package]]
name = "wasm-bindgen"
version = "0.2.86"
@ -986,3 +1279,9 @@ name = "windows_x86_64_msvc"
version = "0.48.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1a515f5799fe4961cb532f983ce2b23082366b898e52ffbce459c86f67c8378a"
[[package]]
name = "zeroize"
version = "1.7.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "525b4ec142c6b68a2d10f01f7bbf6755599ca3f81ea53b8431b7dd348f5fdb2d"

View File

@ -17,7 +17,7 @@ fn main() {
body: message.encode_to_vec(),
};
let ret = client.send(payload.encode_to_vec());
let ret = client.send_raw_bytes(payload.encode_to_vec());
match ret {
Ok(d) => {

View File

@ -1,6 +1,6 @@
[package]
name = "commander_kernel"
version = "0.1.0"
version = "0.1.1"
edition = "2021"
publish = ["descore"]
@ -9,6 +9,8 @@ publish = ["descore"]
[dependencies]
bytes = "1.1.0"
prost = "0.11"
rsa = { version = "0.9.6", features = ["sha2", "pem"] }
rand = "0.8.5"
[dev-dependencies]
criterion = { version = "0.4", features = ["html_reports"] }

View File

@ -7,6 +7,11 @@ message Payload {
bytes body = 2; // this can represent a person, but that is left up to the implementor to decide
}
message SignedPayload {
Payload payload = 1;
bytes signature = 2;
}
// TODO: move Person to tests
// used for testing purposes
message Person {

160
kernel/src/crypto.rs Normal file
View File

@ -0,0 +1,160 @@
use crate::crypto::errors::CryptoError;
use rsa::{
pkcs1::DecodeRsaPrivateKey,
pkcs1::DecodeRsaPublicKey,
pkcs1v15::{SigningKey, VerifyingKey},
sha2::Sha256,
signature::RandomizedSigner,
signature::Verifier,
Pkcs1v15Encrypt, RsaPrivateKey, RsaPublicKey,
};
pub trait Encrypt {
fn encrypt(&self, data: &[u8]) -> Result<Vec<u8>, CryptoError>;
}
pub trait Decrypt {
fn decrypt(&self, data: &[u8]) -> Result<Vec<u8>, CryptoError>;
}
pub trait Signature {
fn sign(&self, data: Vec<u8>) -> Result<Vec<u8>, CryptoError>;
fn verify(&self, data: &[u8]) -> Result<Vec<u8>, CryptoError>;
}
// TODO: This is an UGLY name. Rename it something other than Handler. Almost everything is a handler
struct RSACryptoHandler {
private_key: RsaPrivateKey,
public_key: RsaPublicKey,
}
impl RSACryptoHandler {
fn new_from_str(private_key: &str, public_key: &str) -> Result<RSACryptoHandler, CryptoError> {
let private_key = match RsaPrivateKey::from_pkcs1_pem(private_key) {
Ok(k) => k,
Err(_) => return Err(CryptoError::PrivateKeyInvalid),
};
let public_key = match RsaPublicKey::from_pkcs1_pem(public_key) {
Ok(k) => k,
Err(_) => return Err(CryptoError::PublicKeyInvalid),
};
Ok(RSACryptoHandler {
private_key,
public_key,
})
}
fn new_from_file(
private_pem_key_path: &str,
public_pem_key_path: &str,
) -> Result<RSACryptoHandler, CryptoError> {
let private_key = match RsaPrivateKey::read_pkcs1_pem_file(private_pem_key_path) {
Ok(k) => k,
Err(_) => return Err(CryptoError::PrivateKeyNotFound),
};
let public_key = match RsaPublicKey::read_pkcs1_pem_file(public_pem_key_path) {
Ok(k) => k,
Err(_) => return Err(CryptoError::PublicKeyNotFound),
};
Ok(RSACryptoHandler {
private_key,
public_key,
})
}
}
impl Encrypt for RSACryptoHandler {
fn encrypt(&self, data: &[u8]) -> Result<Vec<u8>, CryptoError> {
// TODO: should this be called every time?
let mut rng = rand::thread_rng();
let encrypted_data = self
.public_key
.encrypt(&mut rng, Pkcs1v15Encrypt, &data[..]);
match encrypted_data {
Ok(d) => Ok(d),
Err(_) => Err(CryptoError::Encrypt),
}
}
}
mod errors {
#[derive(Debug)]
pub enum CryptoError {
Verify,
Sign,
Encrypt,
Decrypt,
PrivateKeyNotFound,
PublicKeyNotFound,
PrivateKeyInvalid,
PublicKeyInvalid,
}
}
mod tests {
use crate::crypto::{Encrypt, RSACryptoHandler};
fn get_public_key() -> String {
String::from(
"-----BEGIN RSA PUBLIC KEY-----
MIIBCgKCAQEAnFkuwQIuo0c8Ab2T0iiJ6X17epAfsiL7TryiAdwh23eIOezQgegl
Sd6rl21GIMqb1ECKxtjGmzVv7jrh4tN/yoRky944vWFFeg85PJ7nRwiYLbV4mmgk
QDkTjbzeOLhGyDISUQgqPxXPPZbupr1/QWasiSCpA7D1G+KLS7oJq/7RKpK9AaOB
XxjQPBjARTouO/I57pDICrcnxZ6tpba1lvERaabsO0ZTVBm2PDefyIYQ4mpyWOJX
j4ES8fIfnQPfejxolkROkcMcuWOyOo7oh+pcV1q8yDOiGMo6eGHvbJWEKnfGwNn1
iHGZiJGdDf3AwIdN4KRBprS45bCoGS1+3QIDAQAB
-----END RSA PUBLIC KEY-----
",
)
}
fn get_private_key() -> String {
String::from(
"-----BEGIN RSA PRIVATE KEY-----
MIIEpAIBAAKCAQEAnFkuwQIuo0c8Ab2T0iiJ6X17epAfsiL7TryiAdwh23eIOezQ
geglSd6rl21GIMqb1ECKxtjGmzVv7jrh4tN/yoRky944vWFFeg85PJ7nRwiYLbV4
mmgkQDkTjbzeOLhGyDISUQgqPxXPPZbupr1/QWasiSCpA7D1G+KLS7oJq/7RKpK9
AaOBXxjQPBjARTouO/I57pDICrcnxZ6tpba1lvERaabsO0ZTVBm2PDefyIYQ4mpy
WOJXj4ES8fIfnQPfejxolkROkcMcuWOyOo7oh+pcV1q8yDOiGMo6eGHvbJWEKnfG
wNn1iHGZiJGdDf3AwIdN4KRBprS45bCoGS1+3QIDAQABAoIBAALYcawkFsa0d3Bd
q6jNwZLNDJgCsvz6O4Inlzg68ifNIV7Sg0n1+GXDhnJzU+0pWtQuV4g+bkDpZE/c
5PsMl90O80mtkfFKaaoKyGMkzjdB/gkI7ji7L/u2Pjecahv0qJ8goCo24JP02Oh5
TH8e4EfHr1iwjjrpt9BJ23ilmmL1sT3rqhlmzPHhAMzYrce20Gj/wBWeZ4xUmTYf
tw0C4eQkJOI7usFSz+gHexEkD5xhYDQPHIaySp7vzQhwVKO0Nqq47oIQ73ju0Va7
GjkIA9QOvekfLiXKS4rbiKwTfZUNPXA2aT/oA4+4qj24/I5FdvZxU2TKl2JWCmJk
WmqBhMkCgYEAz0ixkJz+wSHqWW2MjcssZ8qXj53hQ/9ucKnlFl37VlvAaOcH/vwN
zAmjhuhtrMXvZodNHnqUVv/9/NW16/IuiNPIbR0VyqGswQPzhT96We1tIZUFguky
NhGC/MRPrQEFikqHiz5znkCWc/qVi70MhEgjyKBQhAnCUNYKPr+nWNkCgYEAwRfu
zFT/QB63F2HlS47MjftF74H/ziX5WMjJRmxk81/iXdhlFh9jMMZ9CErM9CZGDcwa
dymgFXAjotstiVnXkO+e6Zsa+cxKBpj1atG2hooODtfGwt12N3cHz7xMtk+y2wgp
Ap4xAyYcS4O9qGn++dj2yrZuNbbTc9OcJoXOM6UCgYEAiJ3GuiNfHHd393zmWEYC
fF3gSn2qDKD7bzHqlTVYA/Dw/bLXaE1D4qivqKjkMC08vfyK7X2o6zZJdix8fIff
97ptrMywoh6wt34dMENIJqD/flSzjzaXK1+bT3ErekDkH+NDNpjwpuq2vrX3fmQZ
Lc5GF2Lh7kRoV9LaacTzTPECgYBc5dDDiZkMFjrsCvMv+NG89UjeQ+L4IRjneCIt
uXSQCm9zyupHTG6CRtxcovAb/lXxyWJqNiKIbd0XOu+bhxfI6R/BMBg4Weq7Zdec
vqxb6gt9ZJ6Bnd6ELMYbUXJuu8VGz5Q7aDQYWbt/MTCL2AMN3S5OtJotSXpN3V7g
wbtE6QKBgQCGF2diTGgHg9H7KUSmBWDVQVM1RhMg3GfTdEITGBPcMRdrx1y/NHYE
99xaS3XZgWqz05Xn+Ku5Dntiu9QwDffA02ZhwGcgn7ZLaWCU3sCHuK4mTNmK2QpG
m/A1vde9ULfntRXDT+44rL5BfsLB9oNfknDtLSk/TsE9zQ6f/zghzw==
-----END RSA PRIVATE KEY-----
",
)
}
#[test]
fn test_rsa_encrypt() {
let data = b"hello from test";
let private_key = get_private_key();
let public_key = get_public_key();
let crypto_handler =
RSACryptoHandler::new_from_str(private_key.as_str(), public_key.as_str()).unwrap();
let encrypted_data = crypto_handler.encrypt(data).unwrap();
let encrypted_data = &encrypted_data[..];
assert!(data.into_iter().ne(encrypted_data.into_iter()))
}
}

View File

@ -1,4 +1,5 @@
pub mod buffer;
mod crypto;
pub mod router;
pub mod stream;
pub mod tcp;

View File

@ -1,4 +1,7 @@
use crate::tcp::errors::StreamClientError;
use crate::{
tcp::errors::StreamClientError,
SignedPayload
};
use std::io::{Read, Write};
use std::net::TcpStream;
@ -25,7 +28,14 @@ impl StreamClient {
}
}
pub fn send(&self, bytes: Vec<u8>) -> Result<Vec<u8>, StreamClientError> {
pub fn send_encrypted_and_signed_payload(
&self,
signed_payload: SignedPayload,
) -> Result<Vec<u8>, StreamClientError> {
todo!();
}
pub fn send_raw_bytes(&self, bytes: Vec<u8>) -> Result<Vec<u8>, StreamClientError> {
match TcpStream::connect(format!(
"{}:{}",
self.connect_options.ip, self.connect_options.port

View File

@ -25,4 +25,5 @@ cargo run --example simple_client
```
### Nextgen
I am currently looking into using the rsa crate: `rsa = { version = "0.9", features = ["sha2", "pem"] }` for simple encryption/decrypting and message signing. More on this later.
I am currently looking into using the rsa crate: `rsa = { version = "0.9", features = ["sha2", "pem"] }` for simple encryption/decrypting and message signing. More on this later.
Again: this shouldn't be used in production as well :)

View File

@ -99,7 +99,7 @@ fn can_add_one_action_and_start_and_call_it() {
};
let encoded_bytes = payload.encode_to_vec();
let received_data = client.send(encoded_bytes);
let received_data = client.send_raw_bytes(encoded_bytes);
let received_data = match received_data {
Ok(data) => data,
Err(_) => {
@ -155,7 +155,7 @@ fn can_add_one_action_and_start_and_call_it_with_exactly_512_bytes() {
assert_eq!(512, encoded_bytes.len());
let received_data = client.send(encoded_bytes);
let received_data = client.send_raw_bytes(encoded_bytes);
let received_data = match received_data {
Ok(data) => data,
Err(_) => {
@ -211,7 +211,7 @@ fn can_add_one_action_and_start_and_call_it_with_exactly_511_bytes() {
assert_eq!(511, encoded_bytes.len());
let received_data = client.send(encoded_bytes);
let received_data = client.send_raw_bytes(encoded_bytes);
let received_data = match received_data {
Ok(data) => data,
Err(_) => {
@ -267,7 +267,7 @@ fn can_add_one_action_and_start_and_call_it_with_exactly_513_bytes() {
assert_eq!(513, encoded_bytes.len());
let received_data = client.send(encoded_bytes);
let received_data = client.send_raw_bytes(encoded_bytes);
let received_data = match received_data {
Ok(data) => data,
Err(_) => {
@ -326,7 +326,7 @@ fn can_add_one_action_and_start_and_call_it_with_sub_message() {
let encoded_bytes = payload.encode_to_vec();
let received_data = client.send(encoded_bytes);
let received_data = client.send_raw_bytes(encoded_bytes);
let received_data = match received_data {
Ok(data) => data,
Err(_) => {