Skip to content

Commit

Permalink
Move to generated keys
Browse files Browse the repository at this point in the history
  • Loading branch information
Magnus Hartvig Grønbech committed Mar 25, 2024
1 parent 281e057 commit ae65864
Show file tree
Hide file tree
Showing 3 changed files with 25 additions and 2 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -155,4 +155,17 @@ codeunit 1445 RSACryptoServiceProvider
begin
RSACryptoServiceProviderImpl.Decrypt(XmlString, EncryptedTextInStream, OaepPadding, DecryptedTextOutStream);
end;

/// <summary>
/// The CreateRSAKeyPair procedure is a function that generates a public and private RSA key pair.
/// </summary>
/// <param name="PublicKeyInXML">This is an output parameter that returns the public key in XML format.</param>
/// <param name="PrivateKeyInXML">This is an output parameter that returns the private key in XML format. This is a sensitive information hence marked as SecretText.</param>
/// <returns>
/// This function does not return a value. The output is via the two parameters PublicKeyInXML and PrivateKeyInXML.
/// </returns>
procedure CreateRSAKeyPair(var PublicKeyInXML: Text; var PrivateKeyInXML: SecretText)
begin
RSACryptoServiceProviderImpl.CreateRSAKeyPair(PublicKeyInXML, PrivateKeyInXML);
end;
}
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,17 @@ codeunit 1446 "RSACryptoServiceProvider Impl." implements "Signature Algorithm v
DotNetAsymmetricAlgorithm := DotNetRSACryptoServiceProvider;
end;

[NonDebuggable]
procedure CreateRSAKeyPair(var PublicKeyInXML: Text; var PrivateKeyInXML: SecretText)
var
DotnetRSA: DotNet RSA;
begin
RSACryptoServiceProvider();
DotnetRSA := DotNetRSACryptoServiceProvider.Create();
PublicKeyInXML := DotnetRSA.ToXmlString(false);
PrivateKeyInXML := DotnetRSA.ToXmlString(true);
end;

#region SignData
procedure SignData(XmlString: SecretText; DataInStream: InStream; HashAlgorithm: Enum "Hash Algorithm"; SignatureOutStream: OutStream)
begin
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -27,8 +27,7 @@ codeunit 132613 RSACryptoServiceProviderTests
begin
if IsInitialized then
exit;
PrivateKeyXmlStringSecret := Base64Convert.FromBase64('PFJTQUtleVZhbHVlPjxNb2R1bHVzPmNKMHBpL2ZBcXJTRy9TZTUrZGdzcksyNjNwSUkvQjhieGZyWDBoMm1aN0VZUWhURXhYa2d6Z0xwS3dFRWFmdUs0MFVqUjEzNlNLQ3I5S240aHpPek1zam5hMXJJRXJCUnMzcU5IS1NxS3JzdkhaUTljRFo3RElVekh2cVh0Q01KMFo0clFBZlZLcWl2bGZqd3RJR1ZPSXRKK0RMT1E4S2tZNjJiOTI2YzhMTEtGUG5SU1ZxQnQrL3lGbEJ3M1NlQWdNYzBtaXRKRUhvYW5LdExXc3RLVzlDTW55OWc1R1V2cnZaY0wwUjR4NkpabFlGTVMwQnBmdFJNbmFrbnI3VXpxMGdvWnY4OHhmb1IrTW1ud1ZUOWdTU0ZRRW1rOVRHaVdjdUV1bnFNUmZ4b3htQW0zVGt3RTRMSDVDNHVNMWRlUGVnWDM0bmoyZmphOWhpUWtReHVqdz09PC9Nb2R1bHVzPjxFeHBvbmVudD5BUUFCPC9FeHBvbmVudD48UD5zSW5SbG0wSGRWeTMrUlo0NDhLNTZaSVNDdkNQNlVMZGZJMk10RU96MlZ2cUN2Z0Vham1BckJkYmYzaUVFNUlXRWhNbEtRRGJCVktZdVMvcW1hanROc202cVhUMXFiRldIdGRQcGNmQ3BMeVFHT2Y0dStFb2xnK2FIWFlIYytNejdSdjBIOSt2NUlxejVWMzZ0ck11N0Q4clF5QVNMeHR2L3BYZ1ZDVzRpUk09PC9QPjxRPm8wMXpmb0UxazBzdmdhRGNzUHEzNWxPaTlsV25LVWUvNzA2eDdjeDNES1drQmR4aUhOSDJFVjhsTVhnS2hra2s2YmNocWo3dXNaQi9OdVBZaER0TWRsYnd3REdkTmFmZ09qKy94Q2loUEFRaFo3T3l5M01sb3hOemsrWHlZUzg4VjVOdFhiSmkrelpmSHJWbXowR2xmczJoNHVSZ0ZEZWw3cVBZUW5GSUVCVT08L1E+PERQPmY3TFJob3hMYnR1b3dHYysveEdtUll4QnZPUVNWVnJtdCtmME5aa2JpVWp4WFFuV3Q3ZnNtWTh6d2xzOHZxTlhqNitGbThsZ3BOTUFZa1NFNEszUEdXaUd1M2s5RW9pU2tUQ1NEb3NYQXU3YkZRa0haWEFUV2FqamhCZ1NnQU9EVmlwNFJtNFozNmx0UTZiZGFqYm01RUUxWEJMZzFHNTJicU9mWjM3NW96MD08L0RQPjxEUT5WTC94WEluNklBTTVHSEUvbDZuR253Wnc0Sjc3TGZWS3F3dVFVL1YxSTE4ampOY2ZKQTNqUW9pNmFMMy8yRWxGbXZXcnh3cjZIYlQ4RUtTV3phbG91VkhOaURFM2dZMHFWWkNZR1Zsc3RCVUFzUzBWY1hqRTQ2bElwazBFU1dPV1VXejFxVmJXLzhEc0JLZm9QMCsyYitTUVM0eHlRSXZRMWRTNmUyRUhJVEU9PC9EUT48SW52ZXJzZVE+Z1lvNmZtSEl0bGtZcG4wWWRSUE9icVRmZURhZm96WnMxaWQ3S2lORWRIakx1MkN3NmhnZEpXVjArUXlSdFFzZDMraTM2eFc2d3FQMmg3QVRsQkJ0cEhLU2lmTmo2VGRSWUEvVUZsZldsWm1yUzdoWjdNQ3FaMmlUNTVQZjJWa3k3RUEwdFY2a1pvOENvRzdYRWtmU2tadzR0Q2hGN1Nja0FTSWF0US9aY2RNPTwvSW52ZXJzZVE+PEQ+T2xGNVdZM0ZEZUlOWWY1M3RpWTRCSGkzcEZsMkk3S3NmRnVKOXJyNkdRckNLRDUvSkZDMUoxcWtpMnVzY0lJZWk5R2JFbk5ka016OEgra0IxbXAwcTZFVkR5aGxJaUNEUHZJQkw4c3FnSlNOTXNFNUMrcDYwS0lPTmtYSjJEU28rZy95RCtlK2dhZjN2aSs3MzQ2WHl6OSszL1RYa29teS9oZkRCR0VaRHlDbnZnN2gyRUdzRnh4N1RRbVdneWxoT3YweTdaQXp5Q0Rmc3JEUy90Mk8rcHNoWm9PYkpWZGVlVlNlaVF4QVZLYTNFTzdJRHFLNm5pSHV2azhOMVgyejBBYWFWaVlJUDdJZ0JXMmdZNXJwcTlRa25HZHhxb2I2VHFvQlV4aFBSM2VVblAvbWhnOWlXejZiNW42RnhsR2tSVkxSMndjaVQ1Z25TMzFjaEJ3cXVRPT08L0Q+PC9SU0FLZXlWYWx1ZT4=');
PublicKeyXmlString := Base64Convert.FromBase64('PFJTQUtleVZhbHVlPjxNb2R1bHVzPmNKMHBpL2ZBcXJTRy9TZTUrZGdzcksyNjNwSUkvQjhieGZyWDBoMm1aN0VZUWhURXhYa2d6Z0xwS3dFRWFmdUs0MFVqUjEzNlNLQ3I5S240aHpPek1zam5hMXJJRXJCUnMzcU5IS1NxS3JzdkhaUTljRFo3RElVekh2cVh0Q01KMFo0clFBZlZLcWl2bGZqd3RJR1ZPSXRKK0RMT1E4S2tZNjJiOTI2YzhMTEtGUG5SU1ZxQnQrL3lGbEJ3M1NlQWdNYzBtaXRKRUhvYW5LdExXc3RLVzlDTW55OWc1R1V2cnZaY0wwUjR4NkpabFlGTVMwQnBmdFJNbmFrbnI3VXpxMGdvWnY4OHhmb1IrTW1ud1ZUOWdTU0ZRRW1rOVRHaVdjdUV1bnFNUmZ4b3htQW0zVGt3RTRMSDVDNHVNMWRlUGVnWDM0bmoyZmphOWhpUWtReHVqdz09PC9Nb2R1bHVzPjxFeHBvbmVudD5BUUFCPC9FeHBvbmVudD48L1JTQUtleVZhbHVlPg==');
RSACryptoServiceProvider.CreateRSAKeyPair(PublicKeyXmlString, PrivateKeyXmlStringSecret);
IsInitialized := true;
end;

Expand Down

0 comments on commit ae65864

Please sign in to comment.