V2.05.7 - August 8, 2012
-
hi_Hash_SHA_256
sometimes returned an incorrect hash value for certain input data. The
chance of this happening seemed greater when the length of the input data
MOD 4 was 3 (if the number of bytes of the input data divided by 4 gives a
remainder of 3).
For your convenience, the 'old' version of
this function is still included in HIME and can be called by the name
'hi_Hash_SHA_256_V1'.
V2.05.6 - May 8, 2012
- Minor internal change. When HIME.sll
was linked to a main program, investigating the resulting executable with
'view dependencies' would show a list of the HIME function names. This has
been changed so that no HIME function names are shown anymore.
V2.05.5 - April
29, 2012
- Minor internal change. When linking
HIME.sll during compilation an error 817 could occur.
V2.05.4 - August
11,
2011
- Minor internal change.
V2.05.3 - May 6,
2011
- No functional change.
- HIME is now also available as a PowerBASIC static library (HIME.sll) for
use with the PowerBASIC compilers PBWin 10 or PBCC 6 or higher versions. (
www.powerbasic.com )
V2.05.2 - April
13, 2010
- No functional change.
- Minor bugfix in
hi_RSA_Pad_PKCS1_1_5.
When calling this function, a console window would pop up, showing some
information. This behaviour is removed.
V2.05.1 - December
25,
2008
- No functional change.
- The HIME nagscreen was changed. You will only notice this when using HIME
without a license key.
V2.05 - January 17,
2008
- New functions:
- hi_HIMEParams_LoadFromFile
: This function retrieves a set of HIME internal parameters and data from
a file. This allows HIME to start up faster.
- hi_HIMEParams_SaveToFile
: This function allows you to store the current set of HIME internal
parameters to a file.
V2.04 - January 1,
2008
The HIME helpfile now comes in two formats:
a HTML Help (.chm) file and a WinHelp (.hlp) file.
- New functions:
- hi_CheckTestVectors_HMAC_FIPS198
: Run some testvectors on the HMAC algorithm
- hi_Factor_TrialDiv : Find a
factor of a huge integer by dividing it by prime numbers
- hi_Factor_Pollards_Rho : Find a
factor of a huge integer number by implementing Pollard's Rho algorithm
- hi_Factors : Find all factors of
a given huge integer number
- hi_FormatAsHuge : Make datalength
a multiple of 4 bytes, according to the huge integer format
- hi_GetPrimeFromTable : Get a
lower prime number from the internal predefined primes table.
- hi_GetRegDword : Get 4 bytes from
a register as a dword (32 bits unsigned integer)
- hi_GetRegLong : Get 4 bytes from
a register as a long (32 bits signed integer)
- hi_HMAC_FIPS198 : Calculates a
HMAC according to NIST FIPS 198a
- hi_PutRegDword : Store a dword
(32 bits unsigned integer) into a HIME register
- hi_PutRegLong : Store a long (32
bits signed integer) into a HIME register
- hi_Root_N : Calculate the Nth
root of a huge integer number
- hi_Root_Sqrt : Calculate the
square root of a huge integer number
- hi_RSA_Pad_PKCS1_1_5 : Increase
the plaintext security before encrypting it with RSA
- hi_RSA_Unpad_PKCS1_1_5 : Remove
padding to retrieve the original plaintext after RSA decryption
- hi_ShredDisk : Securely delete
the free space of a disk
- Improved functions:
- hi_ShredFile : This function can
now be executed in asynchronous or in synchronous mode. Function
parameters have changed since V2.03 !
- hi_Incr : Improved for speed
- hi_Decr : Improved for speed
V2.03 - January
25, 2007
- Bug fixed in the pre-compiled HIME.dll.
When calling HIME functions from a thread and when running multiple threads
simultaneously, under certain circumstances the nagscreen could pop up, even
when using a valid license key. The HIME source code does not have this
problem since it does not have nagscreen code.
V2.02 - January
17, 2007
- hi_Div: Bug fixed. If input
parameters of a particular format, related to each other, were fed to
Hi_Div, a Division Error (#DE) would occur, immediately crashing the
application. Apart from this special situation, Hi_Div did function
correctly.
V2.01 - January
12, 2007
- hi_Compress: Bug fixed: This bug
could make a HIME application program cause a General Protection Fault
(GPF) when the length of the data to compress was smaller than about 600
bytes and LZSS was used. In the case that the GPF would not occur,
compression was correct.
- Minor modifications to the help file.
V2.0 - December 21,
2006
- Code speed-up:
Most of the Huge Integer math routines were
rewritten from scratch to increase calculation speed. Naturally, all the
HIME functions that use these routines benefit from this. Like all the HIME
public key functions.
Following routines have been optimised for speed:
- hi_Add, hi_Sub, hi_Decr, hi_Incr.
- hi_DivBy2, hi_MulBy2
- hi_Mul, hi_Div
- hi_Pow
- hi_IsLess
- hi_ModInv
- hi_PowMod
- hi_GenerateBBSRandomBits,
hi_GenerateRSARandomBits
- hi_Huge2Dec, hi_Dec2Huge
- hi_Huge2Hex, hi_Hex2Huge
- hi_Huge2Bin, hi_Bin2Huge
- hi_IsPrime_Slow, hi_IsPrime_Div, hi_IsPrime_RB
- hi_ReadPrimes
- Modifications:
- hi_GenerateRSAKeys: You can now preset 'e'
with a low value like 3 ,17 or 65537.
- hi_SetOption and hi_GetOption got
extra options: #3 and #4
- hi_Hash_SHA_256: Removed Critical Section.
- hi_Huge2Hex, hi_Huge2Dec and
hi_Huge2Bin now also accept input data that is not an exact multiple
of 4 bytes long
- New functions:
- hi_Square: faster than hi_Mul h1, h1.
- hi_GenerateRSAKeys_CRT: Calculate keys for
RSA-CRT (RSA algorithm with Chinese Remainder Theorem)
- hi_Decrypt_RSA_CRT : Decryption with
RSA-CRT.
- hi_ExtEuclidAlgo: Extended Euclidean
Algorithm
- hi_GetRegAdd2: Get HIME register contents
and store at specified address
- hi_Hash_SHA_512: Calculate SHA-512 hash
value
- hi_CheckTestVectors_SHA_512: Check the
SHA-512 algorithm for correct functioning
- hi_Compress: Compress data with 5 possible
compression algorithms
- hi_Decompress: Decompress compressed data
- hi_GetRegToFile : Get the contents of a
register. Store data in a file
- hi_PutRegFromFile : Put data in a
register. Data is retrieved from a specified file
- hi_ShredFile: Securely erase (cleanse,
sanitize) a file
- hi_GetRandomBytesFromServer:
Get true random bytes from an internet server
- hi_GetRegToClipboard:
Get data from a register and store on the clipboard
- hi_PutRegFromClipboard:
Get data from the clipboard and store in a register
- hi_And:
Perform a bitwise AND operation on 2 operands
- hi_Not:
Perform a bitwise NOT operation on an operand
- hi_Or
: Perform a bitwise OR operation on 2 operands
- hi_Xor:
Perform a bitwise XOR operation on 2 operands
- hi_BitClear:
Clear a specified bit in a register operand
- hi_BitSet: Set
a specified bit in a register operand
- hi_BitToggle:
Toggle a specified bit in a register operand
- hi_IsBitSet:
Test the value of a specified bit
- hi_RegCompare:
Compare the values of 2 huge integer registers
- hi_RegAllocateMultiple:
Allocate multiple registers
V1.04.2 - February
9, 2006
- Minor internal changes.
V1.04.1 - July 29,
2005
- Improved help file,
- Internal changes.
V1.04 - May 20,
2005
- Modifications:
- HIME is now re-entrant
(thread-safe)
- HIME code was optimised
- New functions:
- hi_Rec_AddField : This function adds a
field to a 'record'. A record is a HIME register with a special format.
- hi_Rec_GetField : This function
retrieves a field from a record (a HIME register) with a special format.
- hi_Rec_GetNrFields : This function gets
the number of fields that are stored in a record.
- hi_RegAllocate
: Allocate a HIME register and return the register number.
- hi_RegUnAllocate :
Unallocate a specified HIME register that was previously allocated.
- hi_RegAllocateRange : Allocate a range of
HIME registers.
- hi_RegUnAllocateRange : Unallocate a range
of HIME registers that was previously allocated.
- hi_IsRegAllocated :
Check if specified register is allocated or not.
- hi_RegMaxAllocated : Get the maximum
number of registers that was allocated during this session.
- hi_RegWipe
: Wipes (overwrites) the contents of a HIME register.
- hi_StackWipe
: Wipes (overwrites) the currently unused part of the stack to remove any
traces of old data.
- Bugfixes :
- hi_Hash_SHA_256 : function returned
incorrect results when both input and output register were the same.
- hi_Hash_MD5 : function returned incorrect
results when both input and output register were the same.
V1.03 - June 23, 2004
- New functions:
- hi_RegSplit
: Split the contents of a register in 2 parts: a left and a right part
- hi_SetOption
: Set a HIME option
- hi_GetOption
: Get a HIME option
- hi_Hash_CRC32 : Calculate the CRC32
hashvalue (checksum) of a string
- hi_Hash_MD5
: Calculate the MD5 hashvalue of a string
- hi_CheckTestVectors_MD5
: Check proper functioning of HIMEs MD5 function
- hi_RegChangeEndian
: Change endianness of the contents of the specified register.
- hi_RegReverse
: Reverse the contents of the specified register
- hi_Hash_SHA_1
: Calculate SHA-1 hashvalue
- hi_CheckTestVectors_SHA_1: Check proper
functioning of HIMEs SHA-1 function
- hi_Encrypt_Arc4
: ArcFour (RC4) encryption routine
- hi_Decrypt_Arc4
: ArcFour (RC4) decryption routine
- hi_CheckTestVectors_Arc4 : run some test
vectors on the ArcFour (RC4) algorithm
- hi_RegClear
: Clear contents of register
- hi_RegGetLen
: Get length of register data
- hi_RegConcatByte : Concatenate a byte to a
register
- hi_RegConcatReg : Concatenate a
register to a register
- hi_PutRegAsciiz : Put an
asciiz string into a register
- hi_GetRegAsciiz1 : Get an asciiz
string from a register, method 1
- hi_GetRegAsciiz2 : Get an asciiz
string from a register, method 2
- hi_GetRegByte :
Get a single byte from a register (with index)
- hi_Bin2Huge
: Convert binary ascii string to huge integer
- hi_Incr
: Increment huge integer in register with one
- hi_Decr
: Decrement huge integer in register with one
- hi_TrimLZeroes : Remove
leading zeroes in an ascii string
- Modifications:
-
You can now change the number of internal HIME
registers.
-
hi_Hash_SHA_256:
changed endianness of returned hash value.
- Bugfix:
-
hi_Huge2Base64 : function returned incorrect
results when both input and output register were the same.
V1.02.1 - May 10, 2004
Minor improvements:
- hi_DH_GenParams: Speed improvement (5 to
500 times faster)
- hi_ReadPrimes :
This function now returns the previous number of primes
V1.02 - April 23, 2004
- New functions:
- hi_DH_GenParams: Generate
parameters P and G for Diffie-Hellman
- hi_DH_Step1 :
Generate a Diffie-Hellman public key
- hi_DH_Step2 :
Generate a Diffie-Hellman shared key
- hi_Huge2Base64 : Convert huge
variable to a string in Base64 format
- hi_Base642Huge : Convert a
string in Base64 format to a huge variable
- hi_Hex2Huge : Convert
hexadecimal ascii string to huge integer
- hi_BreakString :
Format
ascii string
- Modifications:
- hi_Huge2Dec : Improved execution speed (2 to 6
times faster)
- hi_Huge2Bin : Bugfix: Display order of LONGwords
was reversed
- Added demo files for Delphi and PureBasic
- Increased the number of internal HIME registers
from 10 to 20
- Added resource file with dll file version info
V1.01 - January
21, 2004
- Added AES secret key encryption/decryption
functions
- Added SHA-256 Secure Hash Algorithm function
- Added testvector functions for the AES and
SHA-256 routines
- Optimised the Rabin-Miller prime checking
algorithm
V1.00 - January 5,
2004

|