@@ -2,14 +2,14 @@ use "path:/usr/local/opt/libressl/lib" if osx and x86
22use " path:/opt/homebrew/opt/libressl/lib" if osx and arm
33use " lib:crypto"
44
5- use @MD4 [Pointer [U8 ]](d: Pointer [U8 ] tag , n: USize , md: Pointer [U8 ])
6- use @MD5 [Pointer [U8 ]](d: Pointer [U8 ] tag , n: USize , md: Pointer [U8 ])
7- use @RIPEMD160 [Pointer [U8 ]](d: Pointer [U8 ] tag , n: USize , md: Pointer [U8 ])
8- use @SHA1 [Pointer [U8 ]](d: Pointer [U8 ] tag , n: USize , md: Pointer [U8 ])
9- use @SHA224 [Pointer [U8 ]](d: Pointer [U8 ] tag , n: USize , md: Pointer [U8 ])
10- use @SHA256 [Pointer [U8 ]](d: Pointer [U8 ] tag , n: USize , md: Pointer [U8 ])
11- use @SHA384 [Pointer [U8 ]](d: Pointer [U8 ] tag , n: USize , md: Pointer [U8 ])
12- use @SHA512 [Pointer [U8 ]](d: Pointer [U8 ] tag , n: USize , md: Pointer [U8 ])
5+ use @MD4 [Pointer [U8 ]](d: Pointer [U8 ] tag , n: USize , md: Pointer [U8 ] tag )
6+ use @MD5 [Pointer [U8 ]](d: Pointer [U8 ] tag , n: USize , md: Pointer [U8 ] tag )
7+ use @RIPEMD160 [Pointer [U8 ]](d: Pointer [U8 ] tag , n: USize , md: Pointer [U8 ] tag )
8+ use @SHA1 [Pointer [U8 ]](d: Pointer [U8 ] tag , n: USize , md: Pointer [U8 ] tag )
9+ use @SHA224 [Pointer [U8 ]](d: Pointer [U8 ] tag , n: USize , md: Pointer [U8 ] tag )
10+ use @SHA256 [Pointer [U8 ]](d: Pointer [U8 ] tag , n: USize , md: Pointer [U8 ] tag )
11+ use @SHA384 [Pointer [U8 ]](d: Pointer [U8 ] tag , n: USize , md: Pointer [U8 ] tag )
12+ use @SHA512 [Pointer [U8 ]](d: Pointer [U8 ] tag , n: USize , md: Pointer [U8 ] tag )
1313
1414use " format"
1515
@@ -30,9 +30,9 @@ primitive MD4 is HashFn
3030 fun apply (input: ByteSeq ): Array [U8 ] val =>
3131 recover
3232 let size: USize = 16
33- let digest = @ pony_alloc (@ pony_ctx () , size)
34- @MD4 (input.cpointer (), input.size (), digest )
35- Array [ U8 ]. from_cpointer (digest, size)
33+ let arr = Array [ U8 ]. init ( 0 , size)
34+ @MD4 (input.cpointer (), input.size (), arr. cpointer () )
35+ arr
3636 end
3737
3838primitive MD5 is HashFn
@@ -42,9 +42,9 @@ primitive MD5 is HashFn
4242 fun apply (input: ByteSeq ): Array [U8 ] val =>
4343 recover
4444 let size: USize = 16
45- let digest = @ pony_alloc (@ pony_ctx () , size)
46- @MD5 (input.cpointer (), input.size (), digest )
47- Array [ U8 ]. from_cpointer (digest, size)
45+ let arr = Array [ U8 ]. init ( 0 , size)
46+ @MD5 (input.cpointer (), input.size (), arr. cpointer () )
47+ arr
4848 end
4949
5050primitive RIPEMD160 is HashFn
@@ -55,9 +55,9 @@ primitive RIPEMD160 is HashFn
5555 fun apply (input: ByteSeq ): Array [U8 ] val =>
5656 recover
5757 let size: USize = 20
58- let digest = @ pony_alloc (@ pony_ctx () , size)
59- @RIPEMD160 (input.cpointer (), input.size (), digest )
60- Array [ U8 ]. from_cpointer (digest, size)
58+ let arr = Array [ U8 ]. init ( 0 , size)
59+ @RIPEMD160 (input.cpointer (), input.size (), arr. cpointer () )
60+ arr
6161 end
6262
6363primitive SHA1 is HashFn
@@ -68,9 +68,9 @@ primitive SHA1 is HashFn
6868 fun apply (input: ByteSeq ): Array [U8 ] val =>
6969 recover
7070 let size: USize = 20
71- let digest = @ pony_alloc (@ pony_ctx () , size)
72- @SHA1 (input.cpointer (), input.size (), digest )
73- Array [ U8 ]. from_cpointer (digest, size)
71+ let arr = Array [ U8 ]. init ( 0 , size)
72+ @SHA1 (input.cpointer (), input.size (), arr. cpointer () )
73+ arr
7474 end
7575
7676primitive SHA224 is HashFn
@@ -81,9 +81,9 @@ primitive SHA224 is HashFn
8181 fun apply (input: ByteSeq ): Array [U8 ] val =>
8282 recover
8383 let size: USize = 28
84- let digest = @ pony_alloc (@ pony_ctx () , size)
85- @SHA224 (input.cpointer (), input.size (), digest )
86- Array [ U8 ]. from_cpointer (digest, size)
84+ let arr = Array [ U8 ]. init ( 0 , size)
85+ @SHA224 (input.cpointer (), input.size (), arr. cpointer () )
86+ arr
8787 end
8888
8989primitive SHA256 is HashFn
@@ -94,9 +94,9 @@ primitive SHA256 is HashFn
9494 fun apply (input: ByteSeq ): Array [U8 ] val =>
9595 recover
9696 let size: USize = 32
97- let digest = @ pony_alloc (@ pony_ctx () , size)
98- @SHA256 (input.cpointer (), input.size (), digest )
99- Array [ U8 ]. from_cpointer (digest, size)
97+ let arr = Array [ U8 ]. init ( 0 , size)
98+ @SHA256 (input.cpointer (), input.size (), arr. cpointer () )
99+ arr
100100 end
101101
102102primitive SHA384 is HashFn
@@ -107,9 +107,9 @@ primitive SHA384 is HashFn
107107 fun apply (input: ByteSeq ): Array [U8 ] val =>
108108 recover
109109 let size: USize = 48
110- let digest = @ pony_alloc (@ pony_ctx () , size)
111- @SHA384 (input.cpointer (), input.size (), digest )
112- Array [ U8 ]. from_cpointer (digest, size)
110+ let arr = Array [ U8 ]. init ( 0 , size)
111+ @SHA384 (input.cpointer (), input.size (), arr. cpointer () )
112+ arr
113113 end
114114
115115primitive SHA512 is HashFn
@@ -120,9 +120,9 @@ primitive SHA512 is HashFn
120120 fun apply (input: ByteSeq ): Array [U8 ] val =>
121121 recover
122122 let size: USize = 64
123- let digest = @ pony_alloc (@ pony_ctx () , size)
124- @SHA512 (input.cpointer (), input.size (), digest )
125- Array [ U8 ]. from_cpointer (digest, size)
123+ let arr = Array [ U8 ]. init ( 0 , size)
124+ @SHA512 (input.cpointer (), input.size (), arr. cpointer () )
125+ arr
126126 end
127127
128128primitive ToHexString
0 commit comments