dada/
dada.rs

1use std::collections::HashMap;
2
3use mops::SopsFile;
4
5#[tokio::main]
6async fn main() {
7    let dada: SopsFile =
8        serde_json::from_str(DADA_AKV).expect("deserializing a SOPS encoded file failed");
9
10    let ciphers = dada.get_ciphers().await;
11
12    let bsd: HashMap<String, String> = dada
13        .content
14        .keys()
15        .into_iter()
16        .map(|key| (key.clone(), dada.get_content(key).decrypt(&ciphers)))
17        .collect();
18
19    println!("{:#?}", bsd);
20}
21
22const DADA_AKV: &'static str = r#"
23{
24	"OAUTH_CLIENT_SECRET": "ENC[AES256_GCM,data:ClXNvw==,iv:6LmoXXpKWQ4VWG6KAqYiSGnCUYUvd3TW/Nc2RgHrFzI=,tag:hw91QeRwrrtfqjsQ844Uiw==,type:str]",
25	"GITLAB_API_ACCESS_TOKEN": "ENC[AES256_GCM,data:9yfYh2aglw==,iv:jCwy3dAEF18B7TNBfy4Glb9hHQ2xPBueW+7UDPdK5uY=,tag:l7Yb6Jtjr103fly4bXOjDw==,type:str]",
26	"DADA": "ENC[AES256_GCM,data:Otrr8Q==,iv:rOlsJxDIfAtLBXgh0wPzfDcZXjMpbM7CqUnFWc8SqZk=,tag:/5JbI2KV2/dkk0W++MgN6g==,type:str]",
27	"sops": {
28		"kms": null,
29		"gcp_kms": null,
30		"azure_kv": [
31			{
32				"vault_url": "https://mops-ci.vault.azure.net",
33				"name": "sops-key",
34				"version": "6cac3e56d9844703bdd908eb6d142b4a",
35				"created_at": "2023-06-25T18:48:01Z",
36				"enc": "dstUB1GhcOH_oQE_sBmO-KXQeaIrnPtVSRM9W2oYrGXnd1_Mp2vyagXKueUz8Cljv7N492nIWTQMwZyTaNorSCWKc1VBWD-vAep2tpOM3CtSbgKLobHTg8DHhrvyjY4DQromkAJHN4V7IDnvDiFGFJ-G7EeaKw_RCcxskuwJEzDylZrajtu7ZdyDROl5MxJoNIqOvLi-eFzYki2atuepnYyx7sEbAN6s71eSpjr6jGoZU4mWIQ9E3HBtMwJpMR4qPVxACiVjKsOSnsaJYS3at4ile0GYaBQhengLTRe5y2gm_2L0s7SsBXXnfX8pJk88Z_Kxb7KKP6CLjbEYk5rqCA"
37			}
38		],
39		"hc_vault": null,
40		"age": null,
41		"lastmodified": "2023-06-25T18:48:03Z",
42		"mac": "ENC[AES256_GCM,data:sf4dhi2Sl7wQEH3qa4BorGaENAuTTyQX3JamjcSS/ZVdZODCXyxszjSbgQ6rgEE0AIyC7OzemR+TbZrrYKOIFOoOiIAnYEovA/NTrWqKWpwv9SnCNcbyD0fFlzroKB1Gu0R2Gjg/vDJIplyX3r5ldfrsNVBhPXXNi2M61041XnQ=,iv:vC3iw1rglWAUks9xEJMoWk5PP1NdxIuVk3wBLW36bC4=,tag:RDhI2lmGnKLUt/HBqV5e8A==,type:str]",
43		"pgp": null,
44		"unencrypted_suffix": "_unencrypted",
45		"version": "3.7.3"
46	}
47}"#;