comprehensive_spiffe 0.4.0

A harness for creating consistently-shaped servers will less boilerplate
Documentation
use hex_literal::hex;
use std::collections::HashMap;
use std::sync::LazyLock;

use crate::pb::{X509svid, X509svidResponse};

pub static SVID_RESPONSE: LazyLock<X509svidResponse> = LazyLock::new(|| X509svidResponse {
    svids: vec![
        X509svid {
            spiffe_id: String::from("spiffe://spiffe.example.org/node1/workload1"),
            x509_svid: hex![
                "30820224308201cba0030201020211008e59009a9465c8360aa0701459dea1cc
                 300a06082a8648ce3d0403023050310b3009060355040613025553310f300d06
                 0355040a13065350494646453130302e06035504051327323837313339383934
                 363638363136353833373638353834383432343132353038343038363435301e
                 170d3235303731393139303034385a170d3235303732313139303035385a301d
                 310b3009060355040613025553310e300c060355040a13055350495245305930
                 1306072a8648ce3d020106082a8648ce3d03010703420004fdd8662e99daf49f
                 cc428b516bd31f2ee1361d716873ec1ec6420f088e0ecc3a815d5a9104e156c2
                 21d37265d404459723eb526c4e948a700cb78ed263cafbbca381b83081b5300e
                 0603551d0f0101ff0404030203a8301d0603551d250416301406082b06010505
                 07030106082b06010505070302300c0603551d130101ff04023000301d060355
                 1d0e041604149b70214eed73e8eb0527a5895b0a96a90b2126ea301f0603551d
                 230418301680145352bdca87b9519fd85604dcf2cd81761cccc2b13036060355
                 1d11042f302d862b7370696666653a2f2f7370696666652e6578616d706c652e
                 6f72672f6e6f6465312f776f726b6c6f616431300a06082a8648ce3d04030203
                 4700304402205eb4533e9aa5abc796bfe863a13097cc0dfa210a8048797937e7
                 5209d9dcdccb022031390b76703faa238d9affb4ff4f81aee01ff70b9e2288cd
                 3133b85143b6ed5f"
            ]
            .to_vec(),
            x509_svid_key: hex![
                "308187020100301306072a8648ce3d020106082a8648ce3d030107046d306b02
                 01010420835f78d83d95118e8af8ad9abd28d26deb7bbe452059c5cdd0f0bc81
                 3f0e9df2a14403420004fdd8662e99daf49fcc428b516bd31f2ee1361d716873
                 ec1ec6420f088e0ecc3a815d5a9104e156c221d37265d404459723eb526c4e94
                 8a700cb78ed263cafbbc"
            ]
            .to_vec(),
            bundle: hex![
                "3082020a308201afa003020102021100d80521d3bbce1c7bf552f3c9c9856b45
                 300a06082a8648ce3d0403023050310b3009060355040613025553310f300d06
                 0355040a13065350494646453130302e06035504051327323837313339383934
                 363638363136353833373638353834383432343132353038343038363435301e
                 170d3235303731393138343832395a170d3235303732363138343833395a3050
                 310b3009060355040613025553310f300d060355040a13065350494646453130
                 302e060355040513273238373133393839343636383631363538333736383538
                 343834323431323530383430383634353059301306072a8648ce3d020106082a
                 8648ce3d03010703420004fd36d220f9f333c443a36f3ee5bd4e7f08fb9ad669
                 99c495561952d3c9923dea616ff003b6887b40186dcca74738c3e23371ff9b57
                 751c6f2a11c4f641072cc5a36a3068300e0603551d0f0101ff04040302010630
                 0f0603551d130101ff040530030101ff301d0603551d0e041604145352bdca87
                 b9519fd85604dcf2cd81761cccc2b130260603551d11041f301d861b73706966
                 66653a2f2f7370696666652e6578616d706c652e6f7267300a06082a8648ce3d
                 04030203490030460221008b61c944ef70df374a850b177751bc5143b1b1bb77
                 52497a0267398ee061d174022100f983dd133a78c147fbe7f8d9e1498ddd304a
                 8a693718eca92e8cf689c4209781"
            ]
            .to_vec(),
            hint: String::new(),
        },
        X509svid {
            spiffe_id: String::from("spiffe://spiffe2.example.org/node2/workload2"),
            x509_svid: hex![
                "30820226308201cca00302010202110091398b039cf83a3e3d803dcb35de0d77
                 300a06082a8648ce3d0403023050310b3009060355040613025553310f300d06
                 0355040a13065350494646453130302e06035504051327323935383233313638
                 353836303330333738333737353639363932383532393134373033363935301e
                 170d3235303732303130303130335a170d3235303732323130303131335a301d
                 310b3009060355040613025553310e300c060355040a13055350495245305930
                 1306072a8648ce3d020106082a8648ce3d03010703420004fd19ea6481fd6c2b
                 f2f1f720109f3828ec6429a251034eab6447eb77757d8d4155ed1c5ee6c1defb
                 4796f86dfef09071a43f6b6861b8fde0dbe8b780c7b89946a381b93081b6300e
                 0603551d0f0101ff0404030203a8301d0603551d250416301406082b06010505
                 07030106082b06010505070302300c0603551d130101ff04023000301d060355
                 1d0e04160414bec4f577e88dfc37a52ef9dd0ee34c42747f91c9301f0603551d
                 23041830168014996ed5f7d5f28b99e856f5bbeab74039a18c5df83037060355
                 1d110430302e862c7370696666653a2f2f737069666665322e6578616d706c65
                 2e6f72672f6e6f6465322f776f726b6c6f616432300a06082a8648ce3d040302
                 0348003045022032dbc615ca821e1c9c6f61192d5b695bb72b959ca622fae58f
                 adc2cdd5f3de90022100e105e5e5b0edcc451e0bfd743339bebb45b0e6e4e543
                 4c9c4568e164ade41423"
            ]
            .to_vec(),
            x509_svid_key: hex![
                "308187020100301306072a8648ce3d020106082a8648ce3d030107046d306b02
                 010104202b5e5027ab2b06d96531880569ca02d0d1b442a32636add8c56dcea8
                 4557a5b1a14403420004fd19ea6481fd6c2bf2f1f720109f3828ec6429a25103
                 4eab6447eb77757d8d4155ed1c5ee6c1defb4796f86dfef09071a43f6b6861b8
                 fde0dbe8b780c7b89946"
            ]
            .to_vec(),
            bundle: hex![
                "3082020a308201b0a003020102021100de8d7848e5e22ea0479d42f1c9934d4f
                 300a06082a8648ce3d0403023050310b3009060355040613025553310f300d06
                 0355040a13065350494646453130302e06035504051327323935383233313638
                 353836303330333738333737353639363932383532393134373033363935301e
                 170d3235303732303039353834345a170d3235303732373039353835345a3050
                 310b3009060355040613025553310f300d060355040a13065350494646453130
                 302e060355040513273239353832333136383538363033303337383337373536
                 393639323835323931343730333639353059301306072a8648ce3d020106082a
                 8648ce3d0301070342000437d79d7cbc726135b6b56554c5ec992ebf24d61204
                 6fa0ca462a21d9e0cc77c0e0d44157e9c4eff5841b80cade44db96f76c8dab01
                 0b5732a3633becfedfd046a36b3069300e0603551d0f0101ff04040302010630
                 0f0603551d130101ff040530030101ff301d0603551d0e04160414996ed5f7d5
                 f28b99e856f5bbeab74039a18c5df830270603551d110420301e861c73706966
                 66653a2f2f737069666665322e6578616d706c652e6f7267300a06082a8648ce
                 3d040302034800304502202546a861ca3bf0747671a60b67895c2157327e6f76
                 c5c2e247b398f9b28510f6022100a5b27dfcff3c39139ce99bb9ca121ec923fc
                 633308cb943a0d70d0717552b380"
            ]
            .to_vec(),
            hint: String::new(),
        },
    ],
    crl: vec![],
    federated_bundles: HashMap::from([(
        String::from("spiffe://spiffe3.example.org/"),
        hex![
            "3082020a308201b0a003020102021100ee311e92f2d6634d7e3484d4af1fb1dd
             300a06082a8648ce3d0403023050310b3009060355040613025553310f300d06
             0355040a13065350494646453130302e06035504051327333136363131333035
             363537363332353732333833353438323536333833363738373838303631301e
             170d3235303732303130303932395a170d3235303732373130303933395a3050
             310b3009060355040613025553310f300d060355040a13065350494646453130
             302e060355040513273331363631313330353635373633323537323338333534
             383235363338333637383738383036313059301306072a8648ce3d020106082a
             8648ce3d03010703420004053a452f27b8d62be7b5f90f0055715dfd16450ab4
             7458bef56b9e96dcd7c8c00bac483256ae97a18e113e7baa3998a2ecc3f945fa
             7e7fdb18fb63ec60a2f710a36b3069300e0603551d0f0101ff04040302010630
             0f0603551d130101ff040530030101ff301d0603551d0e041604149811ac6dc6
             3bd0ebc9c64902b5c094a44169124230270603551d110420301e861c73706966
             66653a2f2f737069666665332e6578616d706c652e6f7267300a06082a8648ce
             3d0403020348003045022054e2d7e6db4ac3c4fd9071d3fafc75bbfe53cb5ba3
             992e592cfa4dbabf664d8802210088c7cbb0b34c08c2e251e596e57d82c11c8f
             5b0803c0c1f4e24a483396eebc0e"
        ]
        .to_vec(),
    )]),
});

pub const SPIFFE2_ROOT_DN: [u8; 82] = hex!(
    "3050310b3009060355040613025553310f300d060355040a1306535049464645
     3130302e06035504051327323935383233313638353836303330333738333737
     353639363932383532393134373033363935"
);

pub const SPIFFE3_ROOT_DN: [u8; 82] = hex!(
    "3050310b3009060355040613025553310f300d060355040a1306535049464645
     3130302e06035504051327333136363131333035363537363332353732333833
     353438323536333833363738373838303631"
);

pub const WRONG_DN: [u8; 15] = hex!("300d310b300906035504030c024341");

pub const UNRELATED_CERT: [u8; 1278] = hex!(
    "308204fa308202e2a0030201020214783218756d667f07528129c87d720c0a27
     d5474b300d06092a864886f70d01010b0500300d310b300906035504030c0243
     413020170d3234303932393131353235395a180f323037343039323731313532
     35395a3010310e300c06035504030c05757365723130820222300d06092a8648
     86f70d01010105000382020f003082020a0282020100f1bac478d5e9cd0b8e45
     6177ded6105116a10152d20b4702a6228e2f7c1585ab05680005b84bd809ef98
     03f4efb5843de5a251ffec82540577c85a90f0e95e105dd5315512609faa73fe
     1cd3c4632c310f4fc3f28eaa628df1529350a7b56c8ef00fdcdd9929d063d3ff
     9acd8b336e37cbcb38c7b1eecc440655337cd621c02b6576839e15f99b24b04a
     b23fdce91730dc305c4f457cbb05d700d96b581ce5ebca54f51a5f900ab0a354
     62580eb8b6c0fb32f283f1e4df614e5f968fd512a962e00e8848c27e686e8799
     ac1b109430ee098b5922b0e28eecee3592e754227229d566fa27b7f670e1d59b
     ef56eb836237d47f15fa0b86f390f27fcfd74d4805a648a881c0e87a67407d95
     15f08d1628b0f30d4b7a5ef5b1be465296e70ed62dfc02dcbc817b12715cd975
     8534006eeeb60c17cbe2ea0e33a3ecd324f3c4c06605233902ac9673909e0504
     9af4c2038536de8428a1fcff38593602b1d72880c50a774b9ceb57d529415874
     20c20301602019612e8453e70c598a2c2e05d681c58ef1004a1c62bae033407e
     6ac65fc8e45c930e92d3760943b159eb363aecef00d2f1623eaf7fb20c8738e6
     18becc9d9a98d2ec01c24f3fe67e61709c5947101beda3fe569bef05092f9c9d
     f413aa3cfa8e1c78910e803b7a485d45df182bf1748aa0cdad891b9c9d2bb218
     e63e7fe1eda94bf623bd346e2fc1362afb80a95f81270203010001a34d304b30
     1f0603551d230418301680146a800871269cc3182683ef6fb52b89505a913a13
     30090603551d1304023000300b0603551d0f0404030204f030100603551d1104
     09300782057573657231300d06092a864886f70d01010b05000382020100787d
     c0658aaa1b22845fc8a91d31aaacd6714857ec62d945c2436008e74885f6580e
     75ccd6cfd3ac2f4cca96679e85757e646f302ee0bdc3975316a831d0aae153a2
     e5fb9baef16d192f75f72c86e6ce9489096874efa0537c82097e0e82169f2aad
     7963b93baf7b76ab77071ede43665b2bea93854a010f32c65345591c6608d4be
     e39f7393f22aa9e1635b27de85b2e332af85440f722c97475cfaee3083adf745
     574953f0886138b091fd149e21c2868c1d3af59ed41e708b9217ae95094aedc8
     69faa0b4840fa115ce35e0c7840f4fa0e0c3af403e01b9b4a52924210b975e2a
     e67664216fb75ac43728b20db81e691439c1c674b3a529e306cc54995ea4a805
     06ef3ea5561e5f316004504c5aed4fe859916d3297e3d94e4f789e91c7786076
     11da7577bc154b85d06a3f50ed776005207bb434efda92d188fccc417c24d698
     d25b092dc84ad2dd305f6f8275fa7108585f3293542e46ae5908dcb834b79d68
     3fb4fff674d8ee3b59767a1f7e4b3c8c5af4b99f096cf357cf46ea36dd693a42
     e9da6f30bac03e34ebefbaa62d2ad25860091a45f4b0279352e2d50dcbfb5f31
     9d6f16d94af5eb718950af6b6a5347232081c4b3a784f2bb62884df773e805e1
     83fd6956d2a69b4f136dedfdf698e81e48d886310e6a901820012cf93fb44828
     556f63c16a2f555cd0ec97cf9987ee258a0b84f57d7730d3d48a623b599a"
);

pub const SPIFFE3_CERT: [u8; 553] = hex!(
    "30820225308201cba0030201020210691ba8c06cbe8692dfcdd922b1961ed030
     0a06082a8648ce3d0403023050310b3009060355040613025553310f300d0603
     55040a13065350494646453130302e0603550405132733313636313133303536
     3537363332353732333833353438323536333833363738373838303631301e17
     0d3235303732303130313132315a170d3235303732323130313133315a301d31
     0b3009060355040613025553310e300c060355040a1305535049524530593013
     06072a8648ce3d020106082a8648ce3d030107034200040fca33e8431ec9448a
     b5027ba3f0743e0d74c9fdb05f1cbed4fd0e15d59be303e588fcb09406da329b
     b8ae41d2a2de34eba617fce99ca9807d54b3edd6e7bc27a381b93081b6300e06
     03551d0f0101ff0404030203a8301d0603551d250416301406082b0601050507
     030106082b06010505070302300c0603551d130101ff04023000301d0603551d
     0e041604142da9bb00912d910d44f5c8827a084084df8fc077301f0603551d23
     0418301680149811ac6dc63bd0ebc9c64902b5c094a44169124230370603551d
     110430302e862c7370696666653a2f2f737069666665332e6578616d706c652e
     6f72672f6e6f6465332f776f726b6c6f616433300a06082a8648ce3d04030203
     480030450221008b383c6f46e65a0265188d0e80b1a0e46c4ddc93d6ddd34067
     33396866f9d85d02206d8859c47bd4ef0add622135085d88a6ae7ca01513877f
     8c4822344cc8d40c45"
);