Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 9 additions & 0 deletions public-key.asc
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
-----BEGIN PGP PUBLIC KEY BLOCK-----

mDMEas3osBYJKwYBBAHaRw8BAQdALOec4NqCqGHROt56oATD/RSPgutQUqTecSxz
QBI5eAG0IWNvbW1ldC5jaGF0IDxjb250YWN0QGNvbW1ldC5jaGF0PoiTBBMWCgA7
FiEECvDGdkMZIcK28HeHAb6sN2i0EZUFAmrN6LACGwMFCwkIBwICIgIGFQoJCAsC
BBYCAwECHgcCF4AACgkQAb6sN2i0EZVlgQD/frVCSbJY+2HKm7yE1gPkRJCHPrOw
xvuyjUoOfhf87UEBANc6JyWZb11r7DX5WeUz75VcLMzDXMzWcVkpBCXrd0sG
=e/bE
-----END PGP PUBLIC KEY BLOCK-----
3 changes: 3 additions & 0 deletions src/cli.rs
Original file line number Diff line number Diff line change
Expand Up @@ -11,4 +11,7 @@ pub struct Args {

#[arg(short, long, default_value_t = false)]
pub prerelease: bool,

#[arg(short, long, default_value = None)]
pub signature: Option<String>,
}
1 change: 1 addition & 0 deletions src/command.rs
Original file line number Diff line number Diff line change
@@ -1,2 +1,3 @@
mod install_utils;
pub mod installer;
pub mod verify;
6 changes: 6 additions & 0 deletions src/command/install_utils.rs
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,7 @@ pub async fn fetch_info(
.per_page(100)
.send()
.await?;

for release in releases.items.iter() {
if use_prereleases == false && release.prerelease {
continue;
Expand Down Expand Up @@ -138,6 +139,11 @@ pub fn verify_release(download: &ReleaseDownload) -> bool {
}
};

info!(
"Public key: {:#?}",
public_key.details.users.first().unwrap().id
);

let (signature, _headers) =
match DetachedSignature::from_armor_single(Cursor::new(download.signature.clone())) {
Ok(sig) => sig,
Expand Down
43 changes: 43 additions & 0 deletions src/command/verify.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
use log::info;

use crate::{
cli::Args,
command::install_utils::{verify_release, ReleaseDownload},
};

pub fn verify<F>(args: Args, set_text: F) -> bool
where
F: Fn(&str) -> (),
{
info!("Starting installation");

set_text("Verifying release");

if let Some(file) = args.build {
let bytes = std::fs::read(&file).unwrap();

if let Some(sig) = args.signature {
let sig = std::fs::read(&sig).unwrap();

let file = ReleaseDownload {
signature: sig,
binary: bytes,
};

set_text("Read files");

if verify_release(&file) == false {
set_text("Failed to verify release...");
return false;
} else {
set_text("Verified release!")
}
} else {
set_text("No signature")
}
} else {
set_text("No file to verify")
}

return false;
}
23 changes: 1 addition & 22 deletions src/config.rs
Original file line number Diff line number Diff line change
Expand Up @@ -10,25 +10,4 @@ pub const WINDOWS_SIGNATURE_NAME: &str = "commet-windows.zip.asc";
pub const WINDOWS_EXE_NAME: &str = "commet.exe";
pub const WINDOWS_SHORTCUT_NAME: &str = "Commet.lnk";

pub const PUBLIC_KEY: &str = "-----BEGIN PGP PUBLIC KEY BLOCK-----

xiYEaVcZBRudW9w7efKKX9fRmwwQ8VSGeBDxPR/L1ZiorA99Ja93y80cQ29tbWV0
IDxjb250YWN0QGNvbW1ldC5jaGF0PsKCBBMbCAAuBQJpVxkFFiEEdJSx+k46noJT
sEiwnYIftF7A4aoCGwECHgEBCwEVARYBJwIZAQAKCRCdgh+0XsDhqiE1sVz/Q146
a/XQm2yeA+QJ4KuD+YY7j1zUl8gNZGJtl4LfvzMlEgrl9Tt8r6FP35mlRhKl+XSG
GwMpXUeHJwxvCM4mBGlXGQUbia8Ea3sb8PNFMjxgTF+gjCOBou6vMn8dCux6QEqs
fSDCwCcEGBsIAJMFAmlXGQUCGwIWIQR0lLH6TjqeglOwSLCdgh+0XsDhqnIgBBkb
CAAdBQJpVxkFFiEExdz0cdzyrZo8ihAhUfYeLD/fY80ACgkQUfYeLD/fY812w6BM
9avvCNSTmyogmsYLBpUb5XxaSe+3J6WhwBHyblaodZ2dlJg+npi1qRnMxvz+jTyQ
ctgmD24jtS2EbXlkCQkACgkQnYIftF7A4aqUviQ+fo2mEwweefVoqGuu2Tx/04B2
RY6FOKYsZL4qnEEO8lW7MoLXhVev8QHxmA6TQae8KZKbh8MXdCHW/cA3ZwjOOARp
VxkFEgorBgEEAZdVAQUBAQdAQatH56zW5TzNugWIsK1UGACqdQ/FCFcG/KT5LDiW
TDwDAQgHwnQEGBsIACAFAmlXGQUCGwwWIQR0lLH6TjqeglOwSLCdgh+0XsDhqgAK
CRCdgh+0XsDhqg1ipzJFtQCftqPRNvYPq96xFw3SAAE3CpAfHi+gwOk3BM7FmMxV
COa2WMfqY9EZxYWMwsbF6wZMdI2w3TLbo68MCc4zBGlXGQUWCSsGAQQB2kcPAQEH
QKcpVnktGVrHWHShUhp2Xb/nX6bQfy57gCe8zQ4Kzp0fwnQEGBsIACAFAmlXGQUC
GyAWIQR0lLH6TjqeglOwSLCdgh+0XsDhqgAKCRCdgh+0XsDhqkolM/gHzXSWM9t5
menzfZtegZnLPZ+n/zufzXdidzGa1K88juIrgoUjGZYJXnPHOJKm8qBXbLBscDkc
SHrEquc3Cw==
=wnah
-----END PGP PUBLIC KEY BLOCK-----";
pub const PUBLIC_KEY: &str = include_str!("../public-key.asc");
5 changes: 5 additions & 0 deletions src/main.rs
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,11 @@ fn main() {
prompt = "Update Commet";
}

if args.command == "verify" {
command::verify::verify(args, |s| info!("{}", s));
return;
}

let content = content.replace("${BUTTON_PROMPT}", prompt);

web_view::builder()
Expand Down
Loading