1use polkadot_sdk::*;
20
21use sp_core::{ecdsa, ed25519, sr25519};
22use sp_runtime_interface::{
23 pass_by::{PassFatPointerAndRead, PassPointerAndRead},
24 runtime_interface,
25};
26
27#[runtime_interface]
28trait Crypto {
29 fn ecdsa_verify(
30 _sig: PassPointerAndRead<&ecdsa::Signature, 65>,
31 _msg: PassFatPointerAndRead<&[u8]>,
32 _pub_key: PassPointerAndRead<&ecdsa::Public, 33>,
33 ) -> bool {
34 true
35 }
36
37 #[version(2)]
38 fn ecdsa_verify(
39 _sig: PassPointerAndRead<&ecdsa::Signature, 65>,
40 _msg: PassFatPointerAndRead<&[u8]>,
41 _pub_key: PassPointerAndRead<&ecdsa::Public, 33>,
42 ) -> bool {
43 true
44 }
45
46 fn ed25519_verify(
47 _sig: PassPointerAndRead<&ed25519::Signature, 64>,
48 _msg: PassFatPointerAndRead<&[u8]>,
49 _pub_key: PassPointerAndRead<&ed25519::Public, 32>,
50 ) -> bool {
51 true
52 }
53
54 fn sr25519_verify(
55 _sig: PassPointerAndRead<&sr25519::Signature, 64>,
56 _msg: PassFatPointerAndRead<&[u8]>,
57 _pub_key: PassPointerAndRead<&sr25519::Public, 32>,
58 ) -> bool {
59 true
60 }
61
62 #[version(2)]
63 fn sr25519_verify(
64 _sig: PassPointerAndRead<&sr25519::Signature, 64>,
65 _msg: PassFatPointerAndRead<&[u8]>,
66 _pub_key: PassPointerAndRead<&sr25519::Public, 32>,
67 ) -> bool {
68 true
69 }
70}
71
72pub type SignatureVerificationOverride = crypto::HostFunctions;
75
76#[allow(unused_imports, dead_code)]
78use self::crypto::{ecdsa_verify, ed25519_verify, sr25519_verify};