50 lines
1.8 KiB
Rust
50 lines
1.8 KiB
Rust
// Regression test для [C-1] EXEMPT FFI boundary constants.
|
|
//
|
|
// mt-crypto-native объявляет MLDSA65_* / MLKEM768_* размеры как primary FFI
|
|
// contract. mt-crypto authoritative SSOT для остального workspace. Этот тест
|
|
// проверяет byte-exact соответствие на каждой сборке — drift = failing build.
|
|
|
|
use mt_crypto::{
|
|
KEYPAIR_SEED_SIZE, MLKEM_PUBLIC_KEY_SIZE, MLKEM_SECRET_KEY_SIZE, MLKEM_SEED_SIZE,
|
|
PUBLIC_KEY_SIZE, SECRET_KEY_SIZE, SIGNATURE_SIZE,
|
|
};
|
|
|
|
#[test]
|
|
fn mt_crypto_native_consts_match_mt_crypto() {
|
|
assert_eq!(
|
|
mt_crypto_native::MLDSA65_PUBKEY_SIZE,
|
|
PUBLIC_KEY_SIZE,
|
|
"FFI MLDSA65_PUBKEY_SIZE drift vs mt_crypto::PUBLIC_KEY_SIZE"
|
|
);
|
|
assert_eq!(
|
|
mt_crypto_native::MLDSA65_SECRETKEY_SIZE,
|
|
SECRET_KEY_SIZE,
|
|
"FFI MLDSA65_SECRETKEY_SIZE drift vs mt_crypto::SECRET_KEY_SIZE"
|
|
);
|
|
assert_eq!(
|
|
mt_crypto_native::MLDSA65_SIGNATURE_SIZE,
|
|
SIGNATURE_SIZE,
|
|
"FFI MLDSA65_SIGNATURE_SIZE drift vs mt_crypto::SIGNATURE_SIZE"
|
|
);
|
|
assert_eq!(
|
|
mt_crypto_native::MLDSA65_SEED_SIZE,
|
|
KEYPAIR_SEED_SIZE,
|
|
"FFI MLDSA65_SEED_SIZE drift vs mt_crypto::KEYPAIR_SEED_SIZE"
|
|
);
|
|
assert_eq!(
|
|
mt_crypto_native::MLKEM768_PUBKEY_SIZE,
|
|
MLKEM_PUBLIC_KEY_SIZE,
|
|
"FFI MLKEM768_PUBKEY_SIZE drift vs mt_crypto::MLKEM_PUBLIC_KEY_SIZE"
|
|
);
|
|
assert_eq!(
|
|
mt_crypto_native::MLKEM768_SECRETKEY_SIZE,
|
|
MLKEM_SECRET_KEY_SIZE,
|
|
"FFI MLKEM768_SECRETKEY_SIZE drift vs mt_crypto::MLKEM_SECRET_KEY_SIZE"
|
|
);
|
|
assert_eq!(
|
|
mt_crypto_native::MLKEM768_SEED_SIZE,
|
|
MLKEM_SEED_SIZE,
|
|
"FFI MLKEM768_SEED_SIZE drift vs mt_crypto::MLKEM_SEED_SIZE"
|
|
);
|
|
}
|