-1

Intel Mac で正常に動作する NIST-800-90Ar1 CTR-DRBG ランダム ビット ジェネレーターの C 実装がありますが、Apple Silicon Mac でテストすると、SIGKILL 信号を受信しました。

私はすでに解決策を見つけました。私は情報を共有しているだけです。問題が解決しない場合は、新しい人に尋ねてください.

4

1 に答える 1

0

原因は、 でポインター演算を行っているuintptr_tため、ポインター認証が失敗することです。

たとえば、次のコード フラグメントがコードに含まれていました。

uint8_t *seed = (void *)((uintptr_t)ctx + ctx->seed_offset);

算術オンuintptr_tは、ポインターの認証情報を破棄します。それはあったはずです:

uint8_t *seed = ((uint8_t *)ctx + ctx->seed_offset);

ポインター認証は、ARM プロセッサに存在するセキュリティ機能であり、これは WWDC 2020 トークで紹介されました。

于 2020-12-04T13:50:13.880 に答える