Skip to content

Commit f53a324

Browse files
committed
allow-plaintext-msg-in-init-function
1 parent 34d3fdb commit f53a324

File tree

1 file changed

+20
-2
lines changed

1 file changed

+20
-2
lines changed

cosmwasm/enclaves/shared/contract-engine/src/contract_operations.rs

+20-2
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@ use crate::external::results::{
2525
HandleSuccess, InitSuccess, MigrateSuccess, QuerySuccess, UpdateAdminSuccess,
2626
};
2727
use crate::message::{is_ibc_msg, parse_message};
28+
use crate::message_utils::try_get_decrypted_secret_msg;
2829
use crate::types::ParsedMessage;
2930

3031
use crate::random::update_msg_counter;
@@ -116,7 +117,24 @@ pub fn init(
116117

117118
let parsed_sig_info: SigInfo = extract_sig_info(sig_info)?;
118119

119-
let secret_msg = SecretMessage::from_slice(msg)?;
120+
let (secret_msg, decrypted_msg) =
121+
if let Some(decrypted_secret_msg) = try_get_decrypted_secret_msg(msg) {
122+
trace!("init input before decryption: {:?}", base64::encode(msg));
123+
(
124+
decrypted_secret_msg.secret_msg,
125+
decrypted_secret_msg.decrypted_msg,
126+
)
127+
} else {
128+
trace!("init input was plaintext: {:?}", base64::encode(msg));
129+
let secret_msg = SecretMessage {
130+
nonce: [0; 32],
131+
user_public_key: [0; 32],
132+
msg: msg.into(),
133+
};
134+
135+
let decrypted_msg = secret_msg.msg.clone();
136+
(secret_msg, decrypted_msg)
137+
};
120138

121139
//let start = Instant::now();
122140
verify_params(
@@ -135,7 +153,7 @@ pub fn init(
135153
// trace!("Time elapsed in verify_params: {:?}", duration);
136154

137155
//let start = Instant::now();
138-
let decrypted_msg = secret_msg.decrypt()?;
156+
// let decrypted_msg = secret_msg.decrypt()?;
139157
// let duration = start.elapsed();
140158
// trace!("Time elapsed in decrypt: {:?}", duration);
141159

0 commit comments

Comments
 (0)