Skip to content

Commit 3fe29dd

Browse files
committed
add rsa Sign() and Verify() method. test bug about issue #25.
1 parent 296c2c3 commit 3fe29dd

File tree

11 files changed

+396
-8
lines changed

11 files changed

+396
-8
lines changed

NETCore.Encrypt.sln

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,24 +20,66 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution
2020
README.md = README.md
2121
EndProjectSection
2222
EndProject
23+
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Framework472.EncryptDemo", "example\Framework472.EncryptDemo\Framework472.EncryptDemo.csproj", "{BD31BCD9-E748-46C3-806F-D8BA8C58185A}"
24+
EndProject
2325
Global
2426
GlobalSection(SolutionConfigurationPlatforms) = preSolution
2527
Debug|Any CPU = Debug|Any CPU
28+
Debug|x64 = Debug|x64
29+
Debug|x86 = Debug|x86
2630
Release|Any CPU = Release|Any CPU
31+
Release|x64 = Release|x64
32+
Release|x86 = Release|x86
2733
EndGlobalSection
2834
GlobalSection(ProjectConfigurationPlatforms) = postSolution
2935
{E761502C-AF51-4AA9-9776-0E3B157F3385}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
3036
{E761502C-AF51-4AA9-9776-0E3B157F3385}.Debug|Any CPU.Build.0 = Debug|Any CPU
37+
{E761502C-AF51-4AA9-9776-0E3B157F3385}.Debug|x64.ActiveCfg = Debug|Any CPU
38+
{E761502C-AF51-4AA9-9776-0E3B157F3385}.Debug|x64.Build.0 = Debug|Any CPU
39+
{E761502C-AF51-4AA9-9776-0E3B157F3385}.Debug|x86.ActiveCfg = Debug|Any CPU
40+
{E761502C-AF51-4AA9-9776-0E3B157F3385}.Debug|x86.Build.0 = Debug|Any CPU
3141
{E761502C-AF51-4AA9-9776-0E3B157F3385}.Release|Any CPU.ActiveCfg = Release|Any CPU
3242
{E761502C-AF51-4AA9-9776-0E3B157F3385}.Release|Any CPU.Build.0 = Release|Any CPU
43+
{E761502C-AF51-4AA9-9776-0E3B157F3385}.Release|x64.ActiveCfg = Release|Any CPU
44+
{E761502C-AF51-4AA9-9776-0E3B157F3385}.Release|x64.Build.0 = Release|Any CPU
45+
{E761502C-AF51-4AA9-9776-0E3B157F3385}.Release|x86.ActiveCfg = Release|Any CPU
46+
{E761502C-AF51-4AA9-9776-0E3B157F3385}.Release|x86.Build.0 = Release|Any CPU
3347
{C98B3A1A-B063-4A53-A8EB-1D8F2C448218}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
3448
{C98B3A1A-B063-4A53-A8EB-1D8F2C448218}.Debug|Any CPU.Build.0 = Debug|Any CPU
49+
{C98B3A1A-B063-4A53-A8EB-1D8F2C448218}.Debug|x64.ActiveCfg = Debug|Any CPU
50+
{C98B3A1A-B063-4A53-A8EB-1D8F2C448218}.Debug|x64.Build.0 = Debug|Any CPU
51+
{C98B3A1A-B063-4A53-A8EB-1D8F2C448218}.Debug|x86.ActiveCfg = Debug|Any CPU
52+
{C98B3A1A-B063-4A53-A8EB-1D8F2C448218}.Debug|x86.Build.0 = Debug|Any CPU
3553
{C98B3A1A-B063-4A53-A8EB-1D8F2C448218}.Release|Any CPU.ActiveCfg = Release|Any CPU
3654
{C98B3A1A-B063-4A53-A8EB-1D8F2C448218}.Release|Any CPU.Build.0 = Release|Any CPU
55+
{C98B3A1A-B063-4A53-A8EB-1D8F2C448218}.Release|x64.ActiveCfg = Release|Any CPU
56+
{C98B3A1A-B063-4A53-A8EB-1D8F2C448218}.Release|x64.Build.0 = Release|Any CPU
57+
{C98B3A1A-B063-4A53-A8EB-1D8F2C448218}.Release|x86.ActiveCfg = Release|Any CPU
58+
{C98B3A1A-B063-4A53-A8EB-1D8F2C448218}.Release|x86.Build.0 = Release|Any CPU
3759
{84CC81FB-9F15-49C2-B480-B6806033F7A6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
3860
{84CC81FB-9F15-49C2-B480-B6806033F7A6}.Debug|Any CPU.Build.0 = Debug|Any CPU
61+
{84CC81FB-9F15-49C2-B480-B6806033F7A6}.Debug|x64.ActiveCfg = Debug|Any CPU
62+
{84CC81FB-9F15-49C2-B480-B6806033F7A6}.Debug|x64.Build.0 = Debug|Any CPU
63+
{84CC81FB-9F15-49C2-B480-B6806033F7A6}.Debug|x86.ActiveCfg = Debug|Any CPU
64+
{84CC81FB-9F15-49C2-B480-B6806033F7A6}.Debug|x86.Build.0 = Debug|Any CPU
3965
{84CC81FB-9F15-49C2-B480-B6806033F7A6}.Release|Any CPU.ActiveCfg = Release|Any CPU
4066
{84CC81FB-9F15-49C2-B480-B6806033F7A6}.Release|Any CPU.Build.0 = Release|Any CPU
67+
{84CC81FB-9F15-49C2-B480-B6806033F7A6}.Release|x64.ActiveCfg = Release|Any CPU
68+
{84CC81FB-9F15-49C2-B480-B6806033F7A6}.Release|x64.Build.0 = Release|Any CPU
69+
{84CC81FB-9F15-49C2-B480-B6806033F7A6}.Release|x86.ActiveCfg = Release|Any CPU
70+
{84CC81FB-9F15-49C2-B480-B6806033F7A6}.Release|x86.Build.0 = Release|Any CPU
71+
{BD31BCD9-E748-46C3-806F-D8BA8C58185A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
72+
{BD31BCD9-E748-46C3-806F-D8BA8C58185A}.Debug|Any CPU.Build.0 = Debug|Any CPU
73+
{BD31BCD9-E748-46C3-806F-D8BA8C58185A}.Debug|x64.ActiveCfg = Debug|Any CPU
74+
{BD31BCD9-E748-46C3-806F-D8BA8C58185A}.Debug|x64.Build.0 = Debug|Any CPU
75+
{BD31BCD9-E748-46C3-806F-D8BA8C58185A}.Debug|x86.ActiveCfg = Debug|Any CPU
76+
{BD31BCD9-E748-46C3-806F-D8BA8C58185A}.Debug|x86.Build.0 = Debug|Any CPU
77+
{BD31BCD9-E748-46C3-806F-D8BA8C58185A}.Release|Any CPU.ActiveCfg = Release|Any CPU
78+
{BD31BCD9-E748-46C3-806F-D8BA8C58185A}.Release|Any CPU.Build.0 = Release|Any CPU
79+
{BD31BCD9-E748-46C3-806F-D8BA8C58185A}.Release|x64.ActiveCfg = Release|Any CPU
80+
{BD31BCD9-E748-46C3-806F-D8BA8C58185A}.Release|x64.Build.0 = Release|Any CPU
81+
{BD31BCD9-E748-46C3-806F-D8BA8C58185A}.Release|x86.ActiveCfg = Release|Any CPU
82+
{BD31BCD9-E748-46C3-806F-D8BA8C58185A}.Release|x86.Build.0 = Release|Any CPU
4183
EndGlobalSection
4284
GlobalSection(SolutionProperties) = preSolution
4385
HideSolutionNode = FALSE
@@ -46,6 +88,7 @@ Global
4688
{E761502C-AF51-4AA9-9776-0E3B157F3385} = {2520DA96-86CD-4BD6-8807-95F27381BE1C}
4789
{C98B3A1A-B063-4A53-A8EB-1D8F2C448218} = {CF0D22DD-69A9-424C-963F-D23DCE937138}
4890
{84CC81FB-9F15-49C2-B480-B6806033F7A6} = {858007F7-5623-4CF8-8621-26CC95F4B41E}
91+
{BD31BCD9-E748-46C3-806F-D8BA8C58185A} = {CF0D22DD-69A9-424C-963F-D23DCE937138}
4992
EndGlobalSection
5093
GlobalSection(ExtensibilityGlobals) = postSolution
5194
SolutionGuid = {20C14320-327E-4793-9081-BED6566B2709}
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
<?xml version="1.0" encoding="utf-8" ?>
2+
<configuration>
3+
<startup>
4+
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.7.2" />
5+
</startup>
6+
</configuration>
Lines changed: 63 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,63 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
3+
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
4+
<PropertyGroup>
5+
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
6+
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
7+
<ProjectGuid>{BD31BCD9-E748-46C3-806F-D8BA8C58185A}</ProjectGuid>
8+
<OutputType>Exe</OutputType>
9+
<RootNamespace>Framework472.EncryptDemo</RootNamespace>
10+
<AssemblyName>Framework472.EncryptDemo</AssemblyName>
11+
<TargetFrameworkVersion>v4.7.2</TargetFrameworkVersion>
12+
<FileAlignment>512</FileAlignment>
13+
<AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
14+
<Deterministic>true</Deterministic>
15+
</PropertyGroup>
16+
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
17+
<PlatformTarget>AnyCPU</PlatformTarget>
18+
<DebugSymbols>true</DebugSymbols>
19+
<DebugType>full</DebugType>
20+
<Optimize>false</Optimize>
21+
<OutputPath>bin\Debug\</OutputPath>
22+
<DefineConstants>DEBUG;TRACE</DefineConstants>
23+
<ErrorReport>prompt</ErrorReport>
24+
<WarningLevel>4</WarningLevel>
25+
</PropertyGroup>
26+
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
27+
<PlatformTarget>AnyCPU</PlatformTarget>
28+
<DebugType>pdbonly</DebugType>
29+
<Optimize>true</Optimize>
30+
<OutputPath>bin\Release\</OutputPath>
31+
<DefineConstants>TRACE</DefineConstants>
32+
<ErrorReport>prompt</ErrorReport>
33+
<WarningLevel>4</WarningLevel>
34+
</PropertyGroup>
35+
<ItemGroup>
36+
<Reference Include="Newtonsoft.Json, Version=12.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL">
37+
<HintPath>..\..\packages\Newtonsoft.Json.12.0.2\lib\net45\Newtonsoft.Json.dll</HintPath>
38+
</Reference>
39+
<Reference Include="System" />
40+
<Reference Include="System.Core" />
41+
<Reference Include="System.Xml.Linq" />
42+
<Reference Include="System.Data.DataSetExtensions" />
43+
<Reference Include="Microsoft.CSharp" />
44+
<Reference Include="System.Data" />
45+
<Reference Include="System.Net.Http" />
46+
<Reference Include="System.Xml" />
47+
</ItemGroup>
48+
<ItemGroup>
49+
<Compile Include="Program.cs" />
50+
<Compile Include="Properties\AssemblyInfo.cs" />
51+
</ItemGroup>
52+
<ItemGroup>
53+
<None Include="App.config" />
54+
<None Include="packages.config" />
55+
</ItemGroup>
56+
<ItemGroup>
57+
<ProjectReference Include="..\..\src\NETCore.Encrypt\NETCore.Encrypt.csproj">
58+
<Project>{e761502c-af51-4aa9-9776-0e3b157f3385}</Project>
59+
<Name>NETCore.Encrypt</Name>
60+
</ProjectReference>
61+
</ItemGroup>
62+
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
63+
</Project>
Lines changed: 97 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,97 @@
1+
using System;
2+
using System.Collections.Generic;
3+
using System.Linq;
4+
using System.Text;
5+
using System.Threading.Tasks;
6+
using NETCore.Encrypt;
7+
using System.IO;
8+
using System.Security.Cryptography;
9+
10+
namespace Framework472.EncryptDemo
11+
{
12+
class Program
13+
{
14+
static void Main(string[] args)
15+
{
16+
17+
Console.WriteLine();
18+
Console.WriteLine("** Test issues #25 on .net framework 4.7.2 https://github.com/myloveCc/NETCore.Encrypt/issues/25 **");
19+
20+
Console.WriteLine();
21+
var privateKeyPath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "privateKey.txt");
22+
23+
if (!File.Exists(privateKeyPath))
24+
{
25+
Console.WriteLine();
26+
Console.WriteLine("Not found file privateKey.txt");
27+
Console.WriteLine();
28+
Console.WriteLine("Run project NETCore.Encrypt.Demo first");
29+
Console.ReadKey();
30+
return;
31+
}
32+
33+
var privateKey = string.Empty;
34+
35+
using (StreamReader sr = new StreamReader(privateKeyPath))
36+
{
37+
privateKey = sr.ReadToEnd();
38+
}
39+
40+
Console.WriteLine();
41+
Console.WriteLine($"private key:{privateKey}");
42+
43+
if (string.IsNullOrEmpty(privateKey))
44+
{
45+
Console.WriteLine();
46+
Console.WriteLine("Private key is null or empty");
47+
Console.WriteLine();
48+
Console.WriteLine("Run project NETCore.Encrypt.Demo first");
49+
Console.ReadKey();
50+
return;
51+
}
52+
53+
var encryptedFilePath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "encrypt.txt");
54+
55+
if (!File.Exists(encryptedFilePath))
56+
{
57+
Console.WriteLine("Not found file encrypt.txt");
58+
Console.WriteLine();
59+
Console.WriteLine("Run project NETCore.Encrypt.Demo first");
60+
Console.ReadKey();
61+
return;
62+
}
63+
64+
var encryptStr = string.Empty;
65+
66+
using (StreamReader sr = new StreamReader(encryptedFilePath))
67+
{
68+
encryptStr = sr.ReadToEnd();
69+
}
70+
71+
Console.WriteLine();
72+
Console.WriteLine($"Encrypt str:{encryptStr}");
73+
74+
75+
if (string.IsNullOrEmpty(encryptStr))
76+
{
77+
Console.WriteLine();
78+
Console.WriteLine("Encrypt str is null or empty");
79+
80+
Console.WriteLine();
81+
Console.WriteLine("Run project NETCore.Encrypt.Demo first");
82+
83+
Console.ReadKey();
84+
return;
85+
}
86+
87+
Console.WriteLine();
88+
Console.WriteLine($"--------------Start descrypt-------------------");
89+
90+
var decryptedStr = EncryptProvider.RSADecrypt(privateKey, encryptStr, RSAEncryptionPadding.Pkcs1);
91+
Console.WriteLine();
92+
Console.WriteLine($"Decrypted str:{decryptedStr}");
93+
94+
Console.ReadKey();
95+
}
96+
}
97+
}
Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
using System.Reflection;
2+
using System.Runtime.CompilerServices;
3+
using System.Runtime.InteropServices;
4+
5+
// 有关程序集的一般信息由以下
6+
// 控制。更改这些特性值可修改
7+
// 与程序集关联的信息。
8+
[assembly: AssemblyTitle("Framework472.EncryptDemo")]
9+
[assembly: AssemblyDescription("")]
10+
[assembly: AssemblyConfiguration("")]
11+
[assembly: AssemblyCompany("")]
12+
[assembly: AssemblyProduct("Framework472.EncryptDemo")]
13+
[assembly: AssemblyCopyright("Copyright © 2019")]
14+
[assembly: AssemblyTrademark("")]
15+
[assembly: AssemblyCulture("")]
16+
17+
// 将 ComVisible 设置为 false 会使此程序集中的类型
18+
//对 COM 组件不可见。如果需要从 COM 访问此程序集中的类型
19+
//请将此类型的 ComVisible 特性设置为 true。
20+
[assembly: ComVisible(false)]
21+
22+
// 如果此项目向 COM 公开,则下列 GUID 用于类型库的 ID
23+
[assembly: Guid("bd31bcd9-e748-46c3-806f-d8ba8c58185a")]
24+
25+
// 程序集的版本信息由下列四个值组成:
26+
//
27+
// 主版本
28+
// 次版本
29+
// 生成号
30+
// 修订号
31+
//
32+
// 可以指定所有值,也可以使用以下所示的 "*" 预置版本号和修订号
33+
// 方法是按如下所示使用“*”: :
34+
// [assembly: AssemblyVersion("1.0.*")]
35+
[assembly: AssemblyVersion("1.0.0.0")]
36+
[assembly: AssemblyFileVersion("1.0.0.0")]
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
<packages>
3+
<package id="Newtonsoft.Json" version="12.0.2" targetFramework="net472" />
4+
</packages>

example/NETCore.Encrypt.Demo/Program.cs

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
using System;
22
using System.Security.Cryptography;
33
using System.Text;
4+
using System.IO;
45

56
namespace NETCore.Encrypt.Demo
67
{
@@ -96,6 +97,47 @@ static void Main(string[] args)
9697
Console.WriteLine("SHA384: " + EncryptProvider.Sha384(plaintext));
9798
Console.WriteLine("SHA512: " + EncryptProvider.Sha512(plaintext));
9899

100+
101+
Console.WriteLine();
102+
Console.WriteLine("** Test issues #25 https://github.com/myloveCc/NETCore.Encrypt/issues/25 **");
103+
104+
rsaKey = EncryptProvider.CreateRsaKey();
105+
106+
publicKey = rsaKey.PublicKey;
107+
privateKey = rsaKey.PrivateKey;
108+
109+
var testStr = "test issues #25 ";
110+
111+
Console.WriteLine($"Test str:{testStr}");
112+
113+
var saveDir = Path.Combine(AppDomain.CurrentDomain.BaseDirectory.Split("NETCore.Encrypt.Demo")[0], "Framework472.EncryptDemo\\bin\\Debug");
114+
115+
//save public key
116+
var publicKeySavePath = Path.Combine(saveDir, "privateKey.txt");
117+
if (File.Exists(publicKeySavePath))
118+
{
119+
File.Delete(publicKeySavePath);
120+
}
121+
using (FileStream fs = new FileStream(publicKeySavePath, FileMode.CreateNew))
122+
{
123+
fs.Write(Encoding.UTF8.GetBytes(privateKey));
124+
}
125+
126+
//save encrypt text
127+
var encryptStr = EncryptProvider.RSAEncrypt(publicKey, testStr, RSAEncryptionPadding.Pkcs1);
128+
Console.WriteLine($"encryped str:{encryptStr}");
129+
var encryptSavePath = Path.Combine(saveDir, "encrypt.txt");
130+
131+
if (File.Exists(encryptSavePath))
132+
{
133+
File.Delete(encryptSavePath);
134+
}
135+
136+
using (FileStream fs = new FileStream(encryptSavePath, FileMode.CreateNew))
137+
{
138+
fs.Write(Encoding.UTF8.GetBytes(encryptStr));
139+
}
140+
99141
Console.ReadKey();
100142

101143

privateKey.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
{"Modulus":"wmW1KfcfMOH85CxmBCzBKDtHkqfLNQgeTEVTk/IS5RKgIpwqL/InIssDY1++UpKmTeDPznum15/5m6aezySYx+X/hcj0Mo+TvTe99L3Ivs+vmLErNSCSWZMYOutROOlmsiFyi7MadxLynkMWg6h70Pf66XFPC8T1M6QPl5rPPAvyKsTjd+4aes2zgoKq+H4B39RDHeFijkOmr5lmWL7WBu/h5WN0s4rxWdNeyAdbl0IW2/t9xdhecRN9MuSU7cKkmCR+YbOcCGz+RCn3LBcqjrq0GYi4/na9/szFFYp2eroaRl0iqKQPuthJz4pEt4P7fFJbXRH+0QlUR2CoyQ+CMQ==","Exponent":"AQAB","P":"3fiKXoFzOweBeKTA4GK4OUpNw8nsrNJUTCc9WPA/1kxGTjDzZPV3MtHrgBZpO71PKByRvtycWih8tCOQQuXzhLEGkyzvUGR+X8CuUb75QG4LQRZ+e3kqgzoP4VotwSt39T2IREo8KAruyDXIwpYJO/bB5QfUCgY5qowSBLFPOV8=","Q":"4DMEIBbUuDaWhlThS5ARhHtIUAiKrcdrDX1z27//hD4gLEh2n+vp4/yRLyLzTc7OQ7GRfUnHfsW9huit27SbZw34LNAUPXyGEdsLgMbFJ6xDcp+8U+AJWj5hhUdfJXaHrRzS/JB1M8ddLqjSqCtTwD/5n2E3VBh6/LaJ4OfTnm8=","DP":"lxoq71yF2agpXbwhxF3PdMh9GYvqvlbLpa+Mlm+ttS7lKTMvbQmgJAs8mkwnRNCBAxg3qsq48LLg+SvAd5nb5PcxN5z+KCbQ1FPxFpq/SDnhFWS/o0P/SaeLyec+gGIb3ekOSxaRztxqYgYi7Tt/e79ljIiAsnY8aTnCxkkBWlc=","DQ":"1UCRXvh4c5QwzytzdM1fbDVbjgzh4/P4Jse6aT6SC7aQIa73bpwWSC5X5o8HAG6Cka8X5SVFZZcu9GDj5kQ/QOHvuqhdaDLGz7sbkO0AYQEg0qmPl/RU0Qre9cfyf47j9Myi/2tkn9C1GImqfh1gN1Bi3q+40fvLGA+EzHGWP28=","InverseQ":"AYCrA49B227c9a69GGBKbYX2UZdRl4T8xrx+F035a4AdLEDbAoNF7H17WQUo2ozg8RNJ70R5QwMraAtNmY0US0H/SVTIyWOIsG5OQHEZCQJZsfrU9qznKG5XrdXj84l46q2GrzMElKZYvdkpahnmjFoNFweqTgz/45vNalfVz5Y=","D":"QUxkxEnsQkFG72Yyhmh6IYd4DT0rtw6ZDsmiv2lrC2NsQvPt/9j5aGiFJNY+WgJEtpgzdYp3iqqD79LSOYZzg4IwiMHttSYhXEfjGNi/G8krlMC+YMQmJMySMQhmahWMl31AushYtXK56ItkfqkTnigOMmgLQ0rPip8rVaN8xRAwUyP0UmO/flcS4391a3cYATCuNkjRj0L5lhZUx+K6miSVhuFsvE2uyWs+4U9j6rZQdwATWvqK9l8AJ3d2+4++IcLZ53xz5KzrwpCY3v+lofG9V54OQ6LpRHhgi9m6ffR03+Pp84H5CL5KBgBVWqfSy49VePbY984VqCpn3itDOQ=="}

publicKey.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
{"Modulus":"wmW1KfcfMOH85CxmBCzBKDtHkqfLNQgeTEVTk/IS5RKgIpwqL/InIssDY1++UpKmTeDPznum15/5m6aezySYx+X/hcj0Mo+TvTe99L3Ivs+vmLErNSCSWZMYOutROOlmsiFyi7MadxLynkMWg6h70Pf66XFPC8T1M6QPl5rPPAvyKsTjd+4aes2zgoKq+H4B39RDHeFijkOmr5lmWL7WBu/h5WN0s4rxWdNeyAdbl0IW2/t9xdhecRN9MuSU7cKkmCR+YbOcCGz+RCn3LBcqjrq0GYi4/na9/szFFYp2eroaRl0iqKQPuthJz4pEt4P7fFJbXRH+0QlUR2CoyQ+CMQ==","Exponent":"AQAB","P":null,"Q":null,"DP":null,"DQ":null,"InverseQ":null,"D":null}

0 commit comments

Comments
 (0)