1
1
use crate :: compute:: {
2
- errors:: { PostComputeError , ReplicateStatusCause :: * } ,
2
+ errors:: ReplicateStatusCause ,
3
3
utils:: {
4
4
env_utils:: { TeeSessionEnvironmentVariable , get_env_var_or_error} ,
5
5
hash_utils:: { concatenate_and_hash, hex_string_to_byte_array} ,
@@ -22,7 +22,7 @@ use alloy_signer_local::PrivateKeySigner;
22
22
/// # Returns
23
23
///
24
24
/// * `Ok(String)` - The signature as a hexadecimal string if successful
25
- /// * `Err(PostComputeError )` - An error if the private key is invalid or if signing fails
25
+ /// * `Err(ReplicateStatusCause )` - An error if the private key is invalid or if signing fails
26
26
///
27
27
/// # Errors
28
28
///
@@ -44,14 +44,14 @@ use alloy_signer_local::PrivateKeySigner;
44
44
pub fn sign_enclave_challenge (
45
45
message_hash : & str ,
46
46
enclave_challenge_private_key : & str ,
47
- ) -> Result < String , PostComputeError > {
47
+ ) -> Result < String , ReplicateStatusCause > {
48
48
let signer: PrivateKeySigner = enclave_challenge_private_key
49
49
. parse :: < PrivateKeySigner > ( )
50
- . map_err ( |_| PostComputeError :: new ( PostComputeInvalidEnclaveChallengePrivateKey ) ) ?;
50
+ . map_err ( |_| ReplicateStatusCause :: PostComputeInvalidEnclaveChallengePrivateKey ) ?;
51
51
52
52
let signature: Signature = signer
53
53
. sign_message_sync ( & hex_string_to_byte_array ( message_hash) )
54
- . map_err ( |_| PostComputeError :: new ( PostComputeInvalidTeeSignature ) ) ?;
54
+ . map_err ( |_| ReplicateStatusCause :: PostComputeInvalidTeeSignature ) ?;
55
55
56
56
Ok ( signature. to_string ( ) )
57
57
}
@@ -69,7 +69,7 @@ pub fn sign_enclave_challenge(
69
69
/// # Returns
70
70
///
71
71
/// * `Ok(String)` - The challenge signature as a hexadecimal string if successful
72
- /// * `Err(PostComputeError )` - An error if required environment variables are missing or if signing fails
72
+ /// * `Err(ReplicateStatusCause )` - An error if required environment variables are missing or if signing fails
73
73
///
74
74
/// # Errors
75
75
///
@@ -97,14 +97,14 @@ pub fn sign_enclave_challenge(
97
97
/// Err(e) => eprintln!("Error generating challenge: {:?}", e),
98
98
/// }
99
99
/// ```
100
- pub fn get_challenge ( chain_task_id : & str ) -> Result < String , PostComputeError > {
100
+ pub fn get_challenge ( chain_task_id : & str ) -> Result < String , ReplicateStatusCause > {
101
101
let worker_address: String = get_env_var_or_error (
102
102
TeeSessionEnvironmentVariable :: SIGN_WORKER_ADDRESS ,
103
- PostComputeWorkerAddressMissing ,
103
+ ReplicateStatusCause :: PostComputeWorkerAddressMissing ,
104
104
) ?;
105
105
let tee_challenge_private_key: String = get_env_var_or_error (
106
106
TeeSessionEnvironmentVariable :: SIGN_TEE_CHALLENGE_PRIVATE_KEY ,
107
- PostComputeTeeChallengePrivateKeyMissing ,
107
+ ReplicateStatusCause :: PostComputeTeeChallengePrivateKeyMissing ,
108
108
) ?;
109
109
let message_hash: String = concatenate_and_hash ( & [ chain_task_id, & worker_address] ) ;
110
110
sign_enclave_challenge ( & message_hash, & tee_challenge_private_key)
@@ -113,7 +113,6 @@ pub fn get_challenge(chain_task_id: &str) -> Result<String, PostComputeError> {
113
113
#[ cfg( test) ]
114
114
mod tests {
115
115
use super :: * ;
116
- use crate :: compute:: utils:: env_utils:: TeeSessionEnvironmentVariable :: * ;
117
116
use temp_env:: with_vars;
118
117
119
118
const CHAIN_TASK_ID : & str = "0x123456789abcdef" ;
@@ -141,7 +140,7 @@ mod tests {
141
140
assert ! (
142
141
matches!(
143
142
result,
144
- Err ( ref err) if err. exit_cause == PostComputeInvalidEnclaveChallengePrivateKey
143
+ Err ( err) if err == ReplicateStatusCause :: PostComputeInvalidEnclaveChallengePrivateKey
145
144
) ,
146
145
"Should return missing TEE challenge private key error"
147
146
) ;
@@ -151,9 +150,12 @@ mod tests {
151
150
fn should_get_challenge ( ) {
152
151
with_vars (
153
152
vec ! [
154
- ( SIGN_WORKER_ADDRESS . name( ) , Some ( WORKER_ADDRESS ) ) ,
155
153
(
156
- SIGN_TEE_CHALLENGE_PRIVATE_KEY . name( ) ,
154
+ TeeSessionEnvironmentVariable :: SIGN_WORKER_ADDRESS . name( ) ,
155
+ Some ( WORKER_ADDRESS ) ,
156
+ ) ,
157
+ (
158
+ TeeSessionEnvironmentVariable :: SIGN_TEE_CHALLENGE_PRIVATE_KEY . name( ) ,
157
159
Some ( ENCLAVE_CHALLENGE_PRIVATE_KEY ) ,
158
160
) ,
159
161
] ,
@@ -181,9 +183,12 @@ mod tests {
181
183
fn should_fail_on_missing_worker_address_env_var ( ) {
182
184
with_vars (
183
185
vec ! [
184
- ( SIGN_WORKER_ADDRESS . name( ) , None ) ,
185
186
(
186
- SIGN_TEE_CHALLENGE_PRIVATE_KEY . name( ) ,
187
+ TeeSessionEnvironmentVariable :: SIGN_WORKER_ADDRESS . name( ) ,
188
+ None ,
189
+ ) ,
190
+ (
191
+ TeeSessionEnvironmentVariable :: SIGN_TEE_CHALLENGE_PRIVATE_KEY . name( ) ,
187
192
Some ( ENCLAVE_CHALLENGE_PRIVATE_KEY ) ,
188
193
) ,
189
194
] ,
@@ -192,7 +197,7 @@ mod tests {
192
197
assert ! (
193
198
matches!(
194
199
result,
195
- Err ( ref err) if err. exit_cause == PostComputeWorkerAddressMissing
200
+ Err ( err) if err == ReplicateStatusCause :: PostComputeWorkerAddressMissing
196
201
) ,
197
202
"Should return missing worker address error"
198
203
) ;
@@ -204,15 +209,21 @@ mod tests {
204
209
fn should_fail_on_missing_private_key_env_var ( ) {
205
210
with_vars (
206
211
vec ! [
207
- ( SIGN_WORKER_ADDRESS . name( ) , Some ( WORKER_ADDRESS ) ) ,
208
- ( SIGN_TEE_CHALLENGE_PRIVATE_KEY . name( ) , None ) ,
212
+ (
213
+ TeeSessionEnvironmentVariable :: SIGN_WORKER_ADDRESS . name( ) ,
214
+ Some ( WORKER_ADDRESS ) ,
215
+ ) ,
216
+ (
217
+ TeeSessionEnvironmentVariable :: SIGN_TEE_CHALLENGE_PRIVATE_KEY . name( ) ,
218
+ None ,
219
+ ) ,
209
220
] ,
210
221
|| {
211
222
let result = get_challenge ( CHAIN_TASK_ID ) ;
212
223
assert ! (
213
224
matches!(
214
225
result,
215
- Err ( ref err) if err. exit_cause == PostComputeTeeChallengePrivateKeyMissing
226
+ Err ( err) if err == ReplicateStatusCause :: PostComputeTeeChallengePrivateKeyMissing
216
227
) ,
217
228
"Should return missing private key error"
218
229
) ;
0 commit comments