Codeunit 3043 DotNet_X509Certificate2, source in 29
Source29
src/Layers/W1/BaseApp/Modules/System/DotNetWrappers/DotNetX509Certificate2.Codeunit.al122 lines, Copyright (c) Microsoft Corporation. MIT
namespace System.Security.Encryption;
using System;
using System.Utilities;
codeunit 3043 DotNet_X509Certificate2
{
InherentEntitlements = X;
InherentPermissions = X;
trigger OnRun()
begin
end;
var
DotNetX509Certificate2: DotNet X509Certificate2;
LoadCertificateErr: Label 'Failed to load certificate.';
procedure X509Certificate2(DotNet_Array: Codeunit DotNet_Array; Password: Text; DotNet_X509KeyStorageFlags: Codeunit DotNet_X509KeyStorageFlags)
var
DotNetArray: DotNet Array;
DotNetX509KeyStorageFlags: DotNet X509KeyStorageFlags;
begin
DotNet_Array.GetArray(DotNetArray);
DotNet_X509KeyStorageFlags.GetX509KeyStorageFlags(DotNetX509KeyStorageFlags);
DotNetX509Certificate2 := DotNetX509Certificate2.X509Certificate2(DotNetArray, Password, DotNetX509KeyStorageFlags);
CheckCertificateCreated();
end;
procedure X509Certificate2(DotNet_Array: Codeunit DotNet_Array; DotNet_SecureString: Codeunit DotNet_SecureString; DotNet_X509KeyStorageFlags: Codeunit DotNet_X509KeyStorageFlags)
var
DotNetArray: DotNet Array;
DotNetX509KeyStorageFlags: DotNet X509KeyStorageFlags;
DotNetSecureString: DotNet SecureString;
begin
DotNet_Array.GetArray(DotNetArray);
DotNet_X509KeyStorageFlags.GetX509KeyStorageFlags(DotNetX509KeyStorageFlags);
DotNet_SecureString.GetSecureString(DotNetSecureString);
DotNetX509Certificate2 := DotNetX509Certificate2.X509Certificate2(DotNetArray, DotNetSecureString, DotNetX509KeyStorageFlags);
CheckCertificateCreated();
end;
procedure Export(DotNet_X509ContentType: Codeunit DotNet_X509ContentType; Password: Text; var DotNet_Array: Codeunit DotNet_Array)
var
DotNetX509ContentType: DotNet X509ContentType;
begin
DotNet_X509ContentType.GetX509ContentType(DotNetX509ContentType);
DotNet_Array.SetArray(DotNetX509Certificate2.Export(DotNetX509ContentType, Password));
end;
procedure FriendlyName(): Text
begin
exit(DotNetX509Certificate2.FriendlyName);
end;
procedure Thumbprint(): Text
begin
exit(DotNetX509Certificate2.Thumbprint);
end;
procedure Issuer(): Text
begin
exit(DotNetX509Certificate2.Issuer);
end;
procedure Subject(): Text
begin
exit(DotNetX509Certificate2.Subject);
end;
procedure Expiration() Expiration: DateTime
begin
Evaluate(Expiration, DotNetX509Certificate2.GetExpirationDateString());
end;
procedure ExpirationLocalTime(): DateTime
begin
exit(DotNetX509Certificate2.NotAfter);
end;
procedure HasPrivateKey(): Boolean
begin
exit(DotNetX509Certificate2.HasPrivateKey);
end;
procedure IsDotNetNull(): Boolean
begin
exit(IsNull(DotNetX509Certificate2));
end;
[Scope('OnPrem')]
procedure PublicKey(var AsymmetricAlgorithm: Codeunit DotNet_AsymmetricAlgorithm)
begin
AsymmetricAlgorithm.SetAsymmetricAlgorithm(DotNetX509Certificate2.PublicKey."Key");
end;
[Scope('OnPrem')]
procedure PrivateKey(var AsymmetricAlgorithm: Codeunit DotNet_AsymmetricAlgorithm)
begin
AsymmetricAlgorithm.SetAsymmetricAlgorithm(DotNetX509Certificate2.PrivateKey);
end;
[Scope('OnPrem')]
procedure GetX509Certificate2(var DotNetX509Certificate2_2: DotNet X509Certificate2)
begin
DotNetX509Certificate2_2 := DotNetX509Certificate2;
end;
[Scope('OnPrem')]
procedure SetX509Certificate2(var DotNetX509Certificate2_2: DotNet X509Certificate2)
begin
DotNetX509Certificate2 := DotNetX509Certificate2_2;
end;
local procedure CheckCertificateCreated()
begin
if IsNull(DotNetX509Certificate2) then
Error(LoadCertificateErr);
end;
}