From e432793aeb2e1ad4d55d2188fda66ff9dbc9fa92 Mon Sep 17 00:00:00 2001 From: shim_ <> Date: Sun, 13 Jan 2019 15:31:03 +0100 Subject: [PATCH] use base64 ids --- Dockerfile | 8 ++++++-- wg-event-gen/Cargo.lock | 24 ++++++++++++++++++++---- wg-event-gen/Cargo.toml | 3 ++- wg-event-gen/src/main.rs | 8 +++++--- 4 files changed, 33 insertions(+), 10 deletions(-) diff --git a/Dockerfile b/Dockerfile index 8e41d54..fa6c335 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,9 +1,13 @@ FROM rust:1.31.1 AS eventbuild -COPY wg-event-gen/ /build - WORKDIR /build +COPY wg-event-gen/Cargo.* /build/ + +RUN mkdir -p src && echo "fn main() {}" > src/main.rs && cargo build --release + +COPY wg-event-gen/ /build + RUN cargo build --release FROM golang AS build diff --git a/wg-event-gen/Cargo.lock b/wg-event-gen/Cargo.lock index b1bf710..c302dfb 100644 --- a/wg-event-gen/Cargo.lock +++ b/wg-event-gen/Cargo.lock @@ -1,14 +1,30 @@ [[package]] -name = "strum" -version = "0.13.0" +name = "base64" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +dependencies = [ + "byteorder 1.2.7 (registry+https://github.com/rust-lang/crates.io-index)", +] + +[[package]] +name = "byteorder" +version = "1.2.7" +source = "registry+https://github.com/rust-lang/crates.io-index" + +[[package]] +name = "hex" +version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" [[package]] name = "wg-event-gen" version = "0.1.0" dependencies = [ - "strum 0.13.0 (registry+https://github.com/rust-lang/crates.io-index)", + "base64 0.10.0 (registry+https://github.com/rust-lang/crates.io-index)", + "hex 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)", ] [metadata] -"checksum strum 0.13.0 (registry+https://github.com/rust-lang/crates.io-index)" = "f6b3fc98c482ff9bb37a6db6a6491218c4c82bec368bd5682033e5b96b969143" +"checksum base64 0.10.0 (registry+https://github.com/rust-lang/crates.io-index)" = "621fc7ecb8008f86d7fb9b95356cd692ce9514b80a86d85b397f32a22da7b9e2" +"checksum byteorder 1.2.7 (registry+https://github.com/rust-lang/crates.io-index)" = "94f88df23a25417badc922ab0f5716cc1330e87f71ddd9203b3a3ccd9cedf75d" +"checksum hex 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)" = "805026a5d0141ffc30abb3be3173848ad46a1b1664fe632428479619a3644d77" diff --git a/wg-event-gen/Cargo.toml b/wg-event-gen/Cargo.toml index f27cfa5..095b9da 100644 --- a/wg-event-gen/Cargo.toml +++ b/wg-event-gen/Cargo.toml @@ -5,4 +5,5 @@ authors = ["shimun "] edition = "2018" [dependencies] -strum = "0.13.0" +hex = "0.3.2" +base64 = "0.10.0" diff --git a/wg-event-gen/src/main.rs b/wg-event-gen/src/main.rs index 45d2d0f..044baf0 100644 --- a/wg-event-gen/src/main.rs +++ b/wg-event-gen/src/main.rs @@ -5,6 +5,8 @@ use crate::gen::*; use crate::listener::*; use std::collections::HashMap; +use hex; +use base64; use std::env; use std::fmt; use std::io::prelude::*; @@ -42,7 +44,7 @@ impl Peer { None => return Err(Error::new(ErrorKind::Other, "Peer is missing key")), }; Ok(Peer { - public_key: key.to_string(), + public_key: base64::encode(&hex::decode(key).unwrap()), endpoint: entries .iter() .filter(|(key, _)| key == &"endpoint") @@ -77,11 +79,11 @@ impl State { } } - pub fn id<'a>(&'a self) -> Option<&'a String> { + pub fn id<'a>(&'a self) -> Option { self.kv() .iter() .filter(|(key, _)| key == &"private_key" || key == &"public_key") - .map(|(_, value)| value) + .map(|(_, value)| base64::encode(&hex::decode(&value).unwrap())) .next() }