bsPtr <- BI.create modSize (\ptr -> MU.copyBytes ptr (castPtr secretPtr) modSize)
c_free secretPtr
return bsPtr
- else if Prelude.length v == 1 then do
+ else if Prelude.length v == 1 && (BS.length (v !! 0)) == modSize then do
useAsCString (v !! 0) $ \secretPtr -> do
sharePtr <- c_dhke (castPtr secretPtr) nullPtr
bsPtr <- BI.create modSize (\ptr -> MU.copyBytes ptr (castPtr sharePtr) modSize)
c_free sharePtr
return bsPtr
- else if Prelude.length v == 2 then do
+ else if Prelude.length v == 2 && (BS.length (v !! 0)) == modSize && (BS.length (v !! 1)) == modSize then do
useAsCString (v !! 0) $ \secretPtr -> do
useAsCString (v !! 1) $ \sharePtr -> do
keyPtr <- c_dhke (castPtr secretPtr) (castPtr sharePtr)