135 lines
4.8 KiB
Plaintext
135 lines
4.8 KiB
Plaintext
Compile subroutine SRP_Utilities_Sample(VOID)
|
|
/**********************************************************************************************************************\
|
|
|
|
Name : SRP_Utilities_Sample
|
|
|
|
Description : The SRP_Utilities_Sample includes sample code, with debugs, demonstrating the various functions
|
|
included in the SRP Utilities library.
|
|
|
|
For best results, use the debugs provided. Some of them are placed after a call so you can see how fast, in
|
|
milliseconds, the routine executed. The result is always in the ElapsedTime variable.
|
|
|
|
\**********************************************************************************************************************/
|
|
|
|
Declare function Rnd, GetTickCount
|
|
|
|
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
|
// ARRAY FUNCTIONS
|
|
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
|
|
|
Declare function SRP_Clean_Array, SRP_Join_Arrays, SRP_Reorder_Array, SRP_Rotate_Array, SRP_Sort_Array
|
|
|
|
// make a big array with blanks and duplicates
|
|
Array = ""
|
|
NumRows = 10000
|
|
For iRow = 1 to NumRows
|
|
If Rnd(3) then
|
|
Array := Int(iRow / 2):@FM
|
|
end else
|
|
Array := @FM
|
|
end
|
|
Next iRow
|
|
Array[-1, 1] = ""
|
|
|
|
// clean it
|
|
StartTime = GetTickCount()
|
|
Array = SRP_Clean_Array(Array, @FM, "UNIQUE")
|
|
ElapsedTime = GetTickCount() - StartTime:" ms"
|
|
debug
|
|
|
|
// make two big arrays, the first is every two numbers, the second is every three numbers
|
|
LeftArray = ""
|
|
RightArray = ""
|
|
NumRows = 10000
|
|
For iRow = 1 to NumRows
|
|
LeftArray := iRow * 2:@FM
|
|
RightArray := iRow * 3:@FM
|
|
Next iRow
|
|
LeftArray[-1, 1] = ""
|
|
RightArray[-1, 1] = ""
|
|
|
|
// join them two different ways
|
|
ArrayIntersect = SRP_Join_Arrays(LeftArray, RightArray, @FM, 1)
|
|
ArrayUnion = SRP_Join_Arrays(LeftArray, RightArray)
|
|
debug
|
|
|
|
// make a big array with random numbers
|
|
Array = ""
|
|
NumCols = 10
|
|
NumRows = 10000
|
|
StartTime = GetTickCount()
|
|
For iCol = 1 to NumCols
|
|
If iCol GT 1 then Array := @FM
|
|
For iRow = 1 to NumRows
|
|
If iRow GT 1 then Array := @VM
|
|
Array := Rnd(10000) + 1
|
|
Next iRow
|
|
Next iCol
|
|
|
|
// reorder the columns (move col 5 to col 1, col 7 to col 2, and col 9 to col 3)
|
|
StartTime = GetTickCount()
|
|
Array = SRP_Reorder_Array(Array, 5:@FM:7:@FM:9)
|
|
ElapsedTime = GetTickCount() - StartTime:" ms"
|
|
debug
|
|
|
|
// rotate the array, making it suitable for the LIST property
|
|
StartTime = GetTickCount()
|
|
Array = SRP_Rotate_Array(Array)
|
|
ElapsedTime = GetTickCount() - StartTime:" ms"
|
|
debug
|
|
|
|
// sort the array. Unlike V119, we can leave the delimiters alone and sort in LIST format
|
|
StartTime = GetTickCount()
|
|
Array = SRP_Sort_Array(Array, "AR1", 1)
|
|
ElapsedTime = GetTickCount() - StartTime:" ms"
|
|
debug
|
|
|
|
|
|
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
|
// CRYPTOGRAPHY FUNCTIONS
|
|
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
|
|
|
Declare function SRP_Hash, SRP_Encode, SRP_Decode
|
|
|
|
HashString = "My Hash"
|
|
Encode = "HEX"
|
|
|
|
debug
|
|
Hash = SRP_Hash(HashString, "ADLER32", Encode)
|
|
Hash = SRP_Hash(HashString, "CRC32", Encode)
|
|
Hash = SRP_Hash(HashString, "MD2", Encode)
|
|
Hash = SRP_Hash(HashString, "MD4", Encode)
|
|
Hash = SRP_Hash(HashString, "MD5", Encode)
|
|
Hash = SRP_Hash(HashString, "SHA", Encode)
|
|
Hash = SRP_Hash(HashString, "SHA-1", Encode)
|
|
Hash = SRP_Hash(HashString, "SHA-2", Encode)
|
|
Hash = SRP_Hash(HashString, "SHA-224", Encode)
|
|
Hash = SRP_Hash(HashString, "SHA-256", Encode)
|
|
Hash = SRP_Hash(HashString, "SHA-384", Encode)
|
|
Hash = SRP_Hash(HashString, "SHA-512", Encode)
|
|
Hash = SRP_Hash(HashString, "RIPEMD", Encode)
|
|
Hash = SRP_Hash(HashString, "RIPEMD-128", Encode)
|
|
Hash = SRP_Hash(HashString, "RIPEMD-160", Encode)
|
|
Hash = SRP_Hash(HashString, "RIPEMD-256", Encode)
|
|
Hash = SRP_Hash(HashString, "RIPEMD-320", Encode)
|
|
Hash = SRP_Hash(HashString, "TIGER", Encode)
|
|
Hash = SRP_Hash(HashString, "WHIRLPOOL", Encode)
|
|
Hash = SRP_Hash(HashString, "SHA-1", Encode)
|
|
Hash = SRP_Hash(HashString, "", Encode) ; // default = SHA-1
|
|
Hash = SRP_Hash(HashString, "asdf", Encode) ; // unrecognized = SHA-1
|
|
|
|
debug
|
|
EncodeString = "My String to Encode"
|
|
EncodeString = SRP_Encode(EncodeString, "HEX")
|
|
EncodeString = SRP_Decode(EncodeString, "HEX")
|
|
EncodeString = SRP_Encode(EncodeString, "BASE32")
|
|
EncodeString = SRP_Decode(EncodeString, "BASE32")
|
|
EncodeString = SRP_Encode(EncodeString, "BASE64")
|
|
EncodeString = SRP_Decode(EncodeString, "BASE64")
|
|
EncodeString = SRP_Encode(EncodeString, "") ; // default = BASE64
|
|
EncodeString = SRP_Decode(EncodeString, "") ; // default = BASE64
|
|
EncodeString = SRP_Encode(EncodeString, "asdf") ; // unrecognized = BASE64
|
|
EncodeString = SRP_Decode(EncodeString, "asdf") ; // unrecognized = BASE64
|
|
|
|
Return
|