Skip to content

Commit 61c2982

Browse files
Merge pull request #17 from SendSafely/v4.0.2
v4.0.2
2 parents b7d3998 + 0133a2b commit 61c2982

3 files changed

Lines changed: 25 additions & 10 deletions

File tree

SampleConsoleApplication/SendSafelyConsoleApplication.csproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@
4343
<Prefer32Bit>false</Prefer32Bit>
4444
</PropertyGroup>
4545
<ItemGroup>
46-
<Reference Include="SendsafelyAPI, Version=4.0.1, Culture=neutral, processorArchitecture=MSIL">
46+
<Reference Include="SendsafelyAPI, Version=4.0.2, Culture=neutral, processorArchitecture=MSIL">
4747
<SpecificVersion>False</SpecificVersion>
4848
<HintPath>..\SendsafelyAPI\packages\SendsafelyAPI.dll</HintPath>
4949
</Reference>

SendsafelyAPI/SendsafelyAPI.csproj

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,8 @@
44
<AssemblyTitle>SendSafely Windows Client API</AssemblyTitle>
55
<Product>SendSafely Windows Client API</Product>
66
<Copyright>Copyright © 2024</Copyright>
7-
<AssemblyVersion>4.0.1</AssemblyVersion>
8-
<FileVersion>4.0.1</FileVersion>
7+
<AssemblyVersion>4.0.2</AssemblyVersion>
8+
<FileVersion>4.0.2</FileVersion>
99
<Platforms>AnyCPU</Platforms>
1010
</PropertyGroup>
1111
<PropertyGroup>
@@ -22,7 +22,7 @@
2222
<FileAlignment>512</FileAlignment>
2323
<TargetFrameworkProfile />
2424
<PackageLicenseFile>LICENSE.txt</PackageLicenseFile>
25-
<Version>4.0.1</Version>
25+
<Version>4.0.2</Version>
2626
</PropertyGroup>
2727
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
2828
<DebugSymbols>true</DebugSymbols>

SendsafelyAPI/Utilities/CryptUtility.cs

Lines changed: 21 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,12 @@
1515

1616
namespace SendSafely.Utilities
1717
{
18+
public enum KeySize
19+
{
20+
SIZE_2048 = 2048,
21+
SIZE_4096 = 4096
22+
}
23+
1824
public class CryptUtility
1925
{
2026
public String GenerateToken()
@@ -323,21 +329,30 @@ public String DecryptKeycode(String privateKeyStr, String encryptedKeycode)
323329

324330
public Keypair GenerateKeyPair(String email)
325331
{
326-
AsymmetricCipherKeyPair keyPair = generateAsymmetricCipherKeyPair();
327-
Keypair pair = Armor(keyPair, email);
332+
AsymmetricCipherKeyPair keyPair = generateAsymmetricCipherKeyPair(2048);
333+
Keypair pair = Armor(keyPair, email, 2048);
334+
335+
return pair;
336+
}
337+
338+
public Keypair GenerateKeyPair(String email, KeySize keySize)
339+
{
340+
int keySizeVal = (int)keySize;
341+
AsymmetricCipherKeyPair keyPair = generateAsymmetricCipherKeyPair(keySizeVal);
342+
Keypair pair = Armor(keyPair, email, keySizeVal);
328343

329344
return pair;
330345
}
331346

332-
private Keypair Armor(AsymmetricCipherKeyPair keyPair, String email)
347+
private Keypair Armor(AsymmetricCipherKeyPair keyPair, String email, int keySize)
333348
{
334349
AsymmetricKeyParameter privateKey = keyPair.Private;
335350
AsymmetricKeyParameter publicKey = keyPair.Public;
336351

337352
MemoryStream memOut = new MemoryStream();
338353
ArmoredOutputStream secretOut = new ArmoredOutputStream(memOut);
339354

340-
AsymmetricCipherKeyPair subKeyPair = generateAsymmetricCipherKeyPair();
355+
AsymmetricCipherKeyPair subKeyPair = generateAsymmetricCipherKeyPair(keySize);
341356
PgpSignatureSubpacketGenerator subPackets = new PgpSignatureSubpacketGenerator();
342357
subPackets.SetKeyFlags(false,KeyFlags.CertifyOther | KeyFlags.SignData);
343358
subPackets.SetKeyExpirationTime(false, 0);
@@ -384,10 +399,10 @@ private Keypair Armor(AsymmetricCipherKeyPair keyPair, String email)
384399
return pair;
385400
}
386401

387-
private AsymmetricCipherKeyPair generateAsymmetricCipherKeyPair()
402+
private AsymmetricCipherKeyPair generateAsymmetricCipherKeyPair(int keySize)
388403
{
389404
RsaKeyPairGenerator kpgen = new RsaKeyPairGenerator();
390-
kpgen.Init(new KeyGenerationParameters(new SecureRandom(new CryptoApiRandomGenerator()), 2048));
405+
kpgen.Init(new KeyGenerationParameters(new SecureRandom(new CryptoApiRandomGenerator()), keySize));
391406
AsymmetricCipherKeyPair keyPair = kpgen.GenerateKeyPair();
392407
return keyPair;
393408
}

0 commit comments

Comments
 (0)