Skip to content

Commit 26c83be

Browse files
committed
JWT WIP
1 parent 6659bc6 commit 26c83be

File tree

2 files changed

+53
-3
lines changed

2 files changed

+53
-3
lines changed

auth/jwt.tcl

+15
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
nx::Class create JWT {
2+
# ... JWT class methods and variables will be defined here
3+
:public method createToken {data} {
4+
# ... implementation for creating a JWT token
5+
}
6+
7+
:public method verifyToken {token} {
8+
# ... implementation for verifying a JWT token
9+
}
10+
11+
:private method createHeader {} {
12+
# ... implementation for creating and encoding the JWT header
13+
}
14+
15+
}

crypto/1_Crypto.tcl

+38-3
Original file line numberDiff line numberDiff line change
@@ -61,8 +61,43 @@ namespace eval oodz {
6161
}
6262
}
6363

64-
65-
66-
64+
:public object method verify_file_signature {fileToCheck fileHash fileSign pubKeyPEMStr} {
65+
set pubKey [new_CkPublicKey]
66+
set rsa [new_CkRsa]
67+
set bdHash [new_CkBinData]
68+
set bdSig [new_CkBinData]
69+
70+
try {
71+
set success [CkPublicKey_LoadFromString $pubKey $pubKeyPEMStr]
72+
if {$success == 0} then {
73+
puts [CkPublicKey_lastErrorText $pubKey]
74+
} else {puts "PEM loaded"}
75+
76+
set success [CkRsa_ImportPublicKeyObj $rsa $pubKey]
77+
if {$success == 0} then {
78+
puts [CkRsa_lastErrorText $rsa]
79+
}
80+
set success [CkBinData_LoadFile $bdHash $fileHash]
81+
if {$success == 0} then {
82+
puts "Failed to load SHA256 hash. $fileHash"
83+
} else {puts "SHA256 loaded."}
84+
set success [CkBinData_LoadFile $bdSig $fileSign]
85+
if {$success == 0} then {
86+
puts "Failed to load RSA signature."
87+
} else {puts "Signature loaded."}
88+
set enc "base64"
89+
CkRsa_put_EncodingMode $rsa $enc
90+
set success [CkRsa_VerifyHashENC $rsa [CkBinData_getEncoded $bdHash $enc] "sha256" [CkBinData_getEncoded $bdSig $enc]]
91+
if {$success == 0} then {
92+
puts [CkRsa_lastErrorText $rsa]
93+
puts "Not Valid"
94+
} else {puts "Signature validated."}
95+
} finally {
96+
delete_CkPublicKey $pubKey
97+
delete_CkRsa $rsa
98+
delete_CkBinData $bdHash
99+
delete_CkBinData $bdSig
100+
}
101+
}
67102
}
68103
}

0 commit comments

Comments
 (0)