-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathFirmadorComandos_test.ps1
34 lines (20 loc) · 1.11 KB
/
FirmadorComandos_test.ps1
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
#FIRMA codigo
#OPENSSL en path
#private.key es la privada
#private.der es la publica
$texto="Calc.exe"
$archivoTemporal = [System.IO.Path]::GetTempFileName()
$archivoTemporal64 = [System.IO.Path]::GetTempFileName()
echo -n "$texto" | openssl pkeyutl -sign -inkey private.key -out $archivoTemporal
#openssl base64 -in $archivoTemporal -out $archivoTemporal64 -A
$Firma=Get-Content -Path $archivoTemporal -raw -ReadCount 0
$Firma64=[Convert]::ToBase64String([IO.File]::ReadAllBytes($archivoTemporal))
#test encodeco
[System.Text.Encoding]::Unicode.GetString([System.Convert]::FromBase64String([Convert]::ToBase64String([System.Text.Encoding]::Unicode.GetBytes($Firma))))
Write-Host "TEXTO EN BASE 64 FIRMADO:" $Firma64
#Descifrado
[IO.File]::WriteAllBytes($archivoTemporal64, [Convert]::FromBase64String($Firma64))
$Firma64d=Get-Content -Path $archivoTemporal64 -raw -ReadCount 0
$descifrado= openssl pkeyutl -verifyrecover -inkey private.der -in $archivoTemporal
Write-Host "TEXTO DESCIFRADO:" $descifrado
openssl pkeyutl -verifyrecover -inkey private.der -in $archivoTemporal64