Skip to main content

cargo_codesign/
verify.rs

1/// Determine the default signature path for a given method.
2pub fn default_signature_path(artifact: &std::path::Path, method: &str) -> std::path::PathBuf {
3    let ext = match method {
4        "cosign" => ".bundle",
5        "minisign" => ".minisig",
6        _ => ".sig",
7    };
8    let mut p = artifact.as_os_str().to_owned();
9    p.push(ext);
10    std::path::PathBuf::from(p)
11}
12
13#[cfg(test)]
14mod tests {
15    use super::*;
16    use std::path::{Path, PathBuf};
17
18    #[test]
19    fn default_sig_path_update() {
20        assert_eq!(
21            default_signature_path(Path::new("release.tar.gz"), "update"),
22            PathBuf::from("release.tar.gz.sig")
23        );
24    }
25
26    #[test]
27    fn default_sig_path_cosign() {
28        assert_eq!(
29            default_signature_path(Path::new("release.tar.gz"), "cosign"),
30            PathBuf::from("release.tar.gz.bundle")
31        );
32    }
33
34    #[test]
35    fn default_sig_path_minisign() {
36        assert_eq!(
37            default_signature_path(Path::new("release.tar.gz"), "minisign"),
38            PathBuf::from("release.tar.gz.minisig")
39        );
40    }
41
42    #[test]
43    fn default_sig_path_gpg() {
44        assert_eq!(
45            default_signature_path(Path::new("release.tar.gz"), "gpg"),
46            PathBuf::from("release.tar.gz.sig")
47        );
48    }
49}