Browse Source

Added ListDigests() function to provide list of available digests.

woollybah 6 years ago
parent
commit
ce393a09a4

+ 4 - 0
crc32.mod/crc32.bmx

@@ -106,4 +106,8 @@ Type TCRC32Register Extends TDigestRegister
 		End If
 	End Method
 
+	Method ToString:String()
+		Return "CRC32"
+	End Method
+
 End Type

+ 1 - 0
digest.mod/common.bmx

@@ -22,6 +22,7 @@ SuperStrict
 Import Crypto.libtomcrypt
 Import pub.stdc
 Import brl.stream
+Import brl.collections
 
 Import "source.bmx"
 

+ 21 - 1
digest.mod/digest.bmx

@@ -30,7 +30,7 @@ Rem
 bbdoc: Gets a digest of the specified @name.
 about: A #TNoSuchAlgorithmException is thrown if the requested digest is not available.
 End Rem
-Function GeTMessageDigest:TMessageDigest(name:String)
+Function GetMessageDigest:TMessageDigest(name:String)
 	Local d:TMessageDigest
 	Local register:TDigestRegister=digest_registry
 
@@ -46,6 +46,26 @@ Function GeTMessageDigest:TMessageDigest(name:String)
 	Return d
 End Function
 
+Rem
+bbdoc: Returns a list of all currently registered digests.
+about: The returned digest names can be used with #GetMessageDigest to get a #TMessageDigest instance.
+End Rem
+Function ListDigests:TArrayList<String>()
+
+	Local list:TArrayLIst<String> = New TArrayList<String>()
+
+	Local register:TDigestRegister=digest_registry
+
+	While register
+		list.Add(register.ToString())
+		register = register._succ
+	Wend
+
+	list.Sort()
+	
+	Return list
+End Function
+
 Rem
 bbdoc: This exception is thrown when a particular cryptographic algorithm is requested but is not available in the environment.
 End Rem

+ 4 - 0
md5digest.mod/md5digest.bmx

@@ -69,4 +69,8 @@ Type TMD5DigestRegister Extends TDigestRegister
 		End If
 	End Method
 
+	Method ToString:String()
+		Return "MD5"
+	End Method
+	
 End Type

+ 4 - 0
sha1digest.mod/sha1digest.bmx

@@ -69,4 +69,8 @@ Type TSHA1DigestRegister Extends TDigestRegister
 		End If
 	End Method
 
+	Method ToString:String()
+		Return "SHA-1"
+	End Method
+
 End Type

+ 4 - 0
sha256digest.mod/sha256digest.bmx

@@ -70,4 +70,8 @@ Type TSHA256DigestRegister Extends TDigestRegister
 		End If
 	End Method
 
+	Method ToString:String()
+		Return "SHA-256"
+	End Method
+
 End Type

+ 4 - 0
sha512digest.mod/sha512digest.bmx

@@ -70,4 +70,8 @@ Type TSHA512DigestRegister Extends TDigestRegister
 		End If
 	End Method
 
+	Method ToString:String()
+		Return "SHA-512"
+	End Method
+
 End Type