Skip to content

Commit 485e96a

Browse files
authored
Fixed bug where the copy was done using the size in bits instead of bytes. (#178)
1 parent 30a05a9 commit 485e96a

File tree

5 files changed

+15
-5
lines changed

5 files changed

+15
-5
lines changed

Module/Cmdlets/PIV/BuildYubikeyPIVSignCertificate.cs

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -141,27 +141,37 @@ protected override void ProcessRecord()
141141
// If a subject name override is provided, create a new CertificateRequest
142142
if (Subjectname is null)
143143
{
144+
WriteDebug("No Subjectname provided, using the submitted CertificateRequest as is.");
144145
_request = (CertificateRequest)CertificateRequest!.BaseObject;
145146
}
146147
else
147148
{
148149
if (((CertificateRequest)CertificateRequest!.BaseObject).PublicKey.Oid.FriendlyName == "RSA")
149150
{
151+
WriteDebug("Subjectname submitted, building new RSA Certificate Request");
150152
_request = new CertificateRequest(Subjectname, ((CertificateRequest)CertificateRequest!.BaseObject).PublicKey.GetRSAPublicKey()!, HashAlgorithm, RSASignaturePadding.Pkcs1);
151153
}
152-
else
154+
else if (((CertificateRequest)CertificateRequest!.BaseObject).PublicKey.Oid.FriendlyName == "ECDSA")
153155
{
156+
WriteDebug("Subjectname submitted, building new ECDSA Certificate Request");
154157
_request = new CertificateRequest(Subjectname, ((CertificateRequest)CertificateRequest!.BaseObject).PublicKey.GetECDsaPublicKey()!, HashAlgorithm);
155158
}
159+
else
160+
{
161+
WriteError(new ErrorRecord(new Exception("Unknown public key algorithm in CertificateRequest"), "UnknownPublicKeyAlgorithm", ErrorCategory.InvalidArgument, null));
162+
return;
163+
}
156164
}
157165

158166
// Add certificate extensions
159167
if (CertificateAuthority.IsPresent)
160168
{
169+
WriteDebug("Adding constraings for CA usage");
161170
_request.CertificateExtensions.Add(new X509BasicConstraintsExtension(true, true, 2, true));
162171
}
163172
else
164173
{
174+
WriteDebug("Adding constraints for non CA usage");
165175
_request.CertificateExtensions.Add(new X509BasicConstraintsExtension(false, false, 0, true));
166176
_request.CertificateExtensions.Add(new X509KeyUsageExtension(KeyUsage, true));
167177
_request.CertificateExtensions.Add(new X509EnhancedKeyUsageExtension(new OidCollection { new Oid("1.3.6.1.5.5.7.3.1"), new Oid("1.3.6.1.5.5.7.3.2"), new Oid("1.3.6.1.4.1.311.20.2.2") }, false));

Module/Cmdlets/Yubikey/ConnectYubikey.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,7 @@ protected override void ProcessRecord()
7272
if (yubikeys.Count() == 1)
7373
{
7474
_yubikey = (YubiKeyDevice)yubikeys.First();
75-
WriteDebug($"Found only one device, using {_yubikey.SerialNumber.ToString() ?? "N/A"}.");
75+
WriteDebug($"[{MyInvocation.MyCommand.Name}] Found only one device, using {_yubikey.SerialNumber.ToString() ?? "N/A"}.");
7676
}
7777
break;
7878

Module/Cmdlets/Yubikey/GetYubikey.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ protected override void BeginProcessing()
2323
// Check if a YubiKey is connected, if not attempt to connect
2424
if (YubiKeyModule._yubikey is null)
2525
{
26-
WriteDebug("No YubiKey selected, calling Connect-Yubikey...");
26+
WriteDebug("[{MyInvocation.MyCommand.Name}]No YubiKey selected, calling Connect-Yubikey...");
2727
try
2828
{
2929
// Create a new PowerShell instance to run Connect-Yubikey

Module/support/Yubico/YubiKeySignatureGenerator.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -177,7 +177,7 @@ private byte[] DigestData(byte[] data, HashAlgorithmName hashAlgorithm)
177177
}
178178

179179
_ = digester.TransformFinalBlock(data, 0, data.Length);
180-
Array.Copy(digester.Hash!, 0, digest, offset, digest.Length);
180+
Array.Copy(digester.Hash!, 0, digest, offset, digester.Hash.Length);
181181

182182
return digest;
183183
}

build.ps1

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ dotnet publish module --nologo --framework 'net8.0' --output "$($Directory.fulln
1919

2020
# Only Windows Powershell use format.ps1xml
2121
#& "C:\Program Files (x86)\Windows Kits\10\bin\10.0.22621.0\x86\signtool.exe" sign /sha1 "8079DD82969461B1B7A8769B26262726AA0F6D89" /fd SHA256 /t http://timestamp.sectigo.com "$($Directory.fullname)\powershellYK.format.ps1xml"
22-
& "C:\Program Files (x86)\Windows Kits\10\bin\10.0.22621.0\x86\signtool.exe" sign /sha1 "8079DD82969461B1B7A8769B26262726AA0F6D89" /fd SHA256 /t http://timestamp.sectigo.com "$($Directory.fullname)\powershellYK.dll"
22+
& "C:\Program Files (x86)\Windows Kits\10\bin\10.0.22621.0\x86\signtool.exe" sign /sha1 "A502DF63C4109BE4BCAD42D8AFF43932709FB0C4" /fd SHA256 /t http://timestamp.sectigo.com "$($Directory.fullname)\powershellYK.dll"
2323

2424
Read-Host -Prompt "Press Enter to continue"
2525

0 commit comments

Comments
 (0)