ssh_agent/proto/
message.rs1use serde::{Deserialize, Serialize};
2
3use super::private_key::PrivateKey;
4
5#[derive(Clone, PartialEq, Debug, Serialize, Deserialize)]
6pub struct Identity {
7 pub pubkey_blob: Vec<u8>,
8 pub comment: String,
9}
10
11#[derive(Clone, PartialEq, Debug, Serialize, Deserialize)]
12pub struct SignRequest {
13 pub pubkey_blob: Vec<u8>,
14 pub data: Vec<u8>,
15 pub flags: u32
16}
17
18#[derive(Clone, PartialEq, Debug, Serialize, Deserialize)]
19pub struct AddIdentity {
20 pub privkey: PrivateKey,
21 pub comment: String
22}
23
24#[derive(Clone, PartialEq, Debug, Serialize, Deserialize)]
25pub struct AddIdentityConstrained {
26 pub identity: AddIdentity,
27 pub constraints: Vec<KeyConstraint>
28}
29
30#[derive(Clone, PartialEq, Debug, Serialize, Deserialize)]
31pub struct RemoveIdentity {
32 pub pubkey_blob: Vec<u8>
33}
34
35#[derive(Clone, PartialEq, Debug, Serialize, Deserialize)]
36pub struct SmartcardKey {
37 pub id: String,
38 pub pin: String
39}
40
41#[derive(Clone, PartialEq, Debug, Serialize, Deserialize)]
42pub struct KeyConstraint {
43 pub constraint_type: u8,
44 pub constraint_data: Vec<u8>
45}
46
47#[derive(Clone, PartialEq, Debug, Serialize, Deserialize)]
48pub struct AddSmartcardKeyConstrained {
49 pub key: SmartcardKey,
50 pub constraints: Vec<KeyConstraint>
51}
52
53#[derive(Clone, PartialEq, Debug, Serialize, Deserialize)]
54pub struct Extension {
55 extension_type: String,
56 extension_contents: Vec<u8>
57}
58
59pub type Passphrase = String;
60pub type SignatureBlob = Vec<u8>;
61
62#[derive(Clone, PartialEq, Debug, Serialize, Deserialize)]
63pub enum Message {
64 Reserved0,
65 Reserved1,
66 Reserved2,
67 Reserved3,
68 Reserved4,
69 Failure,
70 Success,
71 Reserved7,
72 Reserved8,
73 Reserved9,
74 Reserved10,
75 RequestIdentities,
76 IdentitiesAnswer(Vec<Identity>),
77 SignRequest(SignRequest),
78 SignResponse(SignatureBlob),
79 Reserved15,
80 Reserved16,
81 AddIdentity(AddIdentity),
82 RemoveIdentity(RemoveIdentity),
83 RemoveAllIdentities,
84 AddSmartcardKey(SmartcardKey),
85 RemoveSmartcardKey(SmartcardKey),
86 Lock(Passphrase),
87 Unlock(Passphrase),
88 Reserved24,
89 AddIdConstrained(AddIdentityConstrained),
90 AddSmartcardKeyConstrained(AddSmartcardKeyConstrained),
91 Extension(Extension),
92 ExtensionFailure,
93}