Skip to content

Commit fdf8394

Browse files
committed
Refactor schnorrSign: Remove unsafePerformIO, improve safety
1 parent 73758ee commit fdf8394

File tree

1 file changed

+3
-3
lines changed

1 file changed

+3
-3
lines changed

src/Crypto/Secp256k1.hs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -755,9 +755,9 @@ schnorrSign mGen KeyPair{..} bs
755755
keyPairPtr <- ContT (withForeignPtr keyPairFPtr)
756756
lift $ do
757757
sigBuf <- mallocBytes 64
758-
let randomPtr = case mGen of
759-
Just gen -> castPtr . unsafePerformIO . BS.useAsCString (BS.pack $ Prelude.take 32 $ randoms gen) $ return
760-
Nothing -> nullPtr
758+
randomPtr <- case mGen of
759+
Just gen -> fmap castPtr $ BS.useAsCString (BS.pack $ Prelude.take 32 $ randoms gen) return
760+
Nothing -> pure nullPtr
761761
ret <- Prim.schnorrsigSign ctx sigBuf msgHashPtr keyPairPtr randomPtr
762762
if isSuccess ret
763763
then Just . SchnorrSignature <$> newForeignPtr finalizerFree sigBuf

0 commit comments

Comments
 (0)