Skip to content

Commit fb24910

Browse files
authored
Merge pull request #22 from inv2004/master
Lift the repo to nim2
2 parents 248ca26 + 204d75b commit fb24910

File tree

7 files changed

+19
-20
lines changed

7 files changed

+19
-20
lines changed

scram.nimble

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,4 +3,4 @@ author = "Huy Doan"
33
description = "Salted Challenge Response Authentication Mechanism (SCRAM) "
44
license = "MIT"
55

6-
requires "nim >= 0.19.4", "hmac >= 0.2.0"
6+
requires "nim >= 0.19.4", "hmac >= 0.2.0", "checksums >= 0.1.0"

scram/client.nim

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
1-
import base64, strformat, strutils, hmac, sha1, nimSHA2, md5, private/[utils,types]
1+
import base64, strformat, strutils, hmac, nimSHA2, private/[utils,types]
2+
import checksums/[sha1, md5]
23

34
export MD5Digest, SHA1Digest, SHA224Digest, SHA256Digest, SHA384Digest, SHA512Digest, Keccak512Digest
45
export getChannelBindingData
@@ -69,10 +70,7 @@ proc prepareFinalMessage*[T](s: ScramClient[T], password, serverFirstMessage: st
6970
var clientProof = clientKey
7071
clientProof ^= clientSignature
7172
s.state = FINAL_PREPARED
72-
when NimMajor >= 1 and (NimMinor >= 1 or NimPatch >= 2):
73-
clientFinalMessageWithoutProof & ",p=" & base64.encode(clientProof)
74-
else:
75-
clientFinalMessageWithoutProof & ",p=" & base64.encode(clientProof, newLine="")
73+
clientFinalMessageWithoutProof & ",p=" & base64.encode(clientProof)
7674

7775
proc verifyServerFinalMessage*(s: ScramClient, serverFinalMessage: string): bool =
7876
if s.state != FINAL_PREPARED:

scram/private/utils.nim

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import random, base64, strutils, types, hmac, bitops, openssl, net, asyncnet
2-
from md5 import MD5Digest
3-
from sha1 import Sha1Digest
2+
from checksums/md5 import MD5Digest
3+
from checksums/sha1 import Sha1Digest
44
from nimSHA2 import Sha224Digest, Sha256Digest, Sha384Digest, Sha512Digest
55

66

@@ -29,10 +29,10 @@ proc X509_get_signature_nid(x: PX509): int32
2929
proc OBJ_find_sigid_algs(signature: int32, pdigest: pointer, pencryption: pointer): int32
3030
proc OBJ_nid2sn(n: int): cstring
3131

32-
proc EVP_sha256(): PEVP_MD
33-
proc EVP_get_digestbynid(): PEVP_MD
32+
proc EVP_sha256(): EVP_MD
33+
proc EVP_get_digestbynid(): EVP_MD
3434

35-
proc X509_digest(data: PX509, kind: PEVP_MD, md: ptr char, len: ptr uint32): int32
35+
proc X509_digest(data: PX509, kind: EVP_MD, md: ptr char, len: ptr uint32): int32
3636

3737
{.pop.}
3838

@@ -167,7 +167,7 @@ proc getChannelBindingData*(channel: ChannelType, socket: AnySocket, isServer =
167167
var
168168
serverCert: PX509
169169
algoNid: int32
170-
algoType: PEVP_MD
170+
algoType: EVP_MD
171171
hash: array[EVP_MAX_MD_SIZE, char]
172172
hashSize: int32
173173

scram/server.nim

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
1-
import base64, strformat, strutils, hmac, sha1, nimSHA2, md5, private/[utils,types]
1+
import base64, strformat, strutils, hmac, nimSHA2, private/[utils,types]
2+
import checksums/[sha1, md5]
23

34
export MD5Digest, SHA1Digest, SHA224Digest, SHA256Digest, SHA384Digest, SHA512Digest, Keccak512Digest
45
export getChannelBindingData
@@ -152,10 +153,7 @@ proc prepareFinalMessage*[T](s: ScramServer[T], clientFinalMessage: string): str
152153

153154
s.isSuccessful = true
154155
s.state = ENDED
155-
when NimMajor >= 1 and (NimMinor >= 1 or NimPatch >= 2):
156-
result = "v=" & base64.encode(serverSignature)
157-
else:
158-
result = "v=" & base64.encode(serverSignature, newLine="")
156+
result = "v=" & base64.encode(serverSignature)
159157

160158

161159
proc isSuccessful*(s: ScramServer): bool =

tests/test_both.nim

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
1-
import unittest, scram/server, scram/client, sha1, nimSHA2, base64, scram/private/[utils,types]
1+
import unittest, scram/server, scram/client, nimSHA2, base64, scram/private/[utils,types]
2+
import checksums/sha1
23

34

45
proc test[T](user, password: string) =

tests/test_cb.nim

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
1-
import unittest, scram/[server,client], sha1, nimSHA2
1+
import unittest, scram/[server,client], nimSHA2
2+
import checksums/sha1
23
import scram/private/types
34

45
const FAKE_CBDATA = "xxxxxxxxxxxxxxxx"

tests/test_server.nim

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
1-
import unittest, scram/server, sha1, nimSHA2, base64
1+
import unittest, scram/server, nimSHA2, base64
2+
import checksums/sha1
23
import scram/private/[utils, types]
34

45
proc test[T](user, password, nonce, salt, cfirst, sfirst, cfinal, sfinal: string) =

0 commit comments

Comments
 (0)