Modify

#2296 closed Feature Request (Completed)

SHA2 for Crypt.au3

Reported by: jNizM Owned by: BrewManNH
Milestone: 3.3.15.1 Component: AutoIt
Version: Severity: None
Keywords: Cc:

Description

see here:
http://autoit.de/index.php?page=Thread&threadID=35302

SHA2 for Crypt.au3

Global Const $CALG_SHA_256 = 0x0000800c
Global Const $CALG_SHA_384 = 0x0000800d
Global Const $CALG_SHA_512 = 0x0000800e

_Crypt_HashData.au3 | Helpfile

#include <Crypt.au3>
#include <ComboConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <WinAPI.au3>
#include <WindowsConstants.au3>

Global $bAlgorithm = $CALG_SHA1, $iInputEdit = -1, $iOutputEdit = -1

GUICreate("Realtime Hashing", 400, 320)
$iInputEdit = GUICtrlCreateEdit("", 0, 0, 400, 150, $ES_WANTRETURN)
$iOutputEdit = GUICtrlCreateEdit("", 0, 150, 400, 150, $ES_READONLY)
Local $iCombo = GUICtrlCreateCombo("", 0, 300, 100, 20, $CBS_DROPDOWNLIST)
GUICtrlSetData(-1, "MD2|MD4|MD5|SHA1|SHA256|SHA384|SHA512", "SHA1")
GUIRegisterMsg($WM_COMMAND, "WM_COMMAND")
GUISetState(@SW_SHOW)

_Crypt_Startup() ; To optimize performance start the crypt library.

While 1
    Switch GUIGetMsg()
        Case $GUI_EVENT_CLOSE
            Exit

        Case $iCombo ; Check when the combobox is selected and retrieve the correct algorithm.
            Switch GUICtrlRead($iCombo) ; Read the combobox selection.
                Case "MD2"
                    $bAlgorithm = $CALG_MD2

                Case "MD4"
                    $bAlgorithm = $CALG_MD4

                Case "MD5"
                    $bAlgorithm = $CALG_MD5

                Case "SHA1"
                    $bAlgorithm = $CALG_SHA1
                
                Case "SHA256"
                    If (@OSVersion = "WIN_2000") Or (@OSVersion = "WIN_XPe") Or (@OSVersion = "WIN_XP") Or (@OSVersion = "WIN_2003") Then
                        MsgBox(16, "Error", "Sorry, this algorithm is not available. Windows Vista+ only.") ; Show an error if the system is not Windows Vista+.
                        ContinueLoop
                    EndIf
                    $bAlgorithm = $CALG_SHA_256
                
                Case "SHA384"
                    If (@OSVersion = "WIN_2000") Or (@OSVersion = "WIN_XPe") Or (@OSVersion = "WIN_XP") Or (@OSVersion = "WIN_2003") Then
                        MsgBox(16, "Error", "Sorry, this algorithm is not available. Windows Vista+ only.") ; Show an error if the system is not Windows Vista+.
                        ContinueLoop
                    EndIf
                    $bAlgorithm = $CALG_SHA_384
                    
                Case "SHA512"
                    If (@OSVersion = "WIN_2000") Or (@OSVersion = "WIN_XPe") Or (@OSVersion = "WIN_XP") Or (@OSVersion = "WIN_2003") Then
                        MsgBox(16, "Error", "Sorry, this algorithm is not available. Windows Vista+ only.") ; Show an error if the system is not Windows Vista+.
                        ContinueLoop
                    EndIf
                    $bAlgorithm = $CALG_SHA_512
            EndSwitch

            Local $sRead = GUICtrlRead($iInputEdit)
            If StringStripWS($sRead, 8) <> "" Then ; Check there is text available to hash.
                Local $bHash = _Crypt_HashData($sRead, $bAlgorithm) ; Create a hash of the text entered.
                GUICtrlSetData($iOutputEdit, $bHash) ; Set the output box with the hash data.
            EndIf
    EndSwitch
WEnd

_Crypt_Shutdown() ; Shutdown the crypt library.

Func WM_COMMAND($hWnd, $iMsg, $wParam, $lParam)
    #forceref $hWnd, $iMsg, $lParam

    Switch _WinAPI_LoWord($wParam)
        Case $iInputEdit
            Switch _WinAPI_HiWord($wParam)
                Case $EN_CHANGE
                    Local $bHash = _Crypt_HashData(GUICtrlRead($iInputEdit), $bAlgorithm) ; Create a hash of the text entered.
                    GUICtrlSetData($iOutputEdit, $bHash) ; Set the output box with the hash data.
            EndSwitch
    EndSwitch
EndFunc   ;==>WM_COMMAND

Attachments (0)

Change History (10)

comment:1 by TicketCleanup, on Dec 27, 2012 at 12:00:01 PM

Version: 3.3.8.1

Automatic ticket cleanup.

comment:2 by jNizM, on Dec 27, 2012 at 12:36:40 PM

Windows XP with SP3:
This algorithm is supported

Windows XP with SP2, Windows XP with SP1, and Windows XP:
This algorithm is not supported.

comment:3 by anonymous, on Dec 28, 2012 at 9:32:13 AM

any reason why SHA_224 not available in the proposal?

in reply to:  4 comment:5 by anonymous, on Dec 31, 2012 at 4:38:56 PM

Replying to jNizM:

ALG_ID (Windows)
http://msdn.microsoft.com/en-us/library/windows/desktop/aa375549(v=vs.85).aspx

thanks,
that certainly means that MS does not support it !!!

comment:6 by guinness, on Jan 15, 2013 at 8:49:43 PM

Resolution: Rejected
Status: newclosed

AutoIt supports Windows 2000 and above and thus adding these would cause more issues for very little benefit.

comment:7 by guinness, on Sep 18, 2013 at 9:05:58 PM

Added as comments for now.

comment:8 by BrewManNH, on Dec 29, 2015 at 4:01:03 PM

Resolution: Rejected
Status: closedreopened

comment:9 by BrewManNH, on Dec 29, 2015 at 4:18:16 PM

Owner: set to BrewManNH
Status: reopenedaccepted

comment:10 by BrewManNH, on Dec 29, 2015 at 4:35:06 PM

Milestone: 3.3.15.1
Resolution: Completed
Status: acceptedclosed

Changed by revision [11621] in version: 3.3.15.1

Uncommented the variables for these algorithms and updated the example scripts to use them.

Last edited on Dec 29, 2015 at 4:37:01 PM by BrewManNH (previous) (diff)

Modify Ticket

Action
as closed The owner will remain BrewManNH.

Add Comment


E-mail address and name can be saved in the Preferences .
 
Note: See TracTickets for help on using tickets.