Felder für CRYPTO+PLUS verschlüsseln
Dieses Skript zeigt, wie ein bestehender unverschlüsselter Wert mit CRYPTO+PLUS verschlüsselt wird.
Konfiguration
Es handelt sich um einen Skriptexporter
Das Skript wird als AfterLoadData ausgeführt
Das Skript benötigt eine Referenz auf die CRYPTO+PLUS-Business-Logic-Dll Diese liegt standardmäßig unter "C:\Program Files (x86)\cobra\CRMPRO\Programm\Module\Extension\Addins\CryptoPlus\Ruthardt.CryptoPlus.BusinessLogic.dll"
Es muss bereits mit CRYPTO+PLUS ein Schlüssel bereitstehen. Für die Verschlüsselung wird der Public-Key verwendet, der sich im Systempfad von cobra befindet.
Ideen
Das Skript kann über eine Komplette Datensatzliste ausgeführt werden
Das Skript arbeitet mit der offiziellen CRYPTO+PLUS-API und verwendet deren Befehle
Die Ausführung erfolgt über die gesamte Liste. Dabei ist ggfs. ein Filter im Dialog anzuwenden.
Skript
// Version 5
namespace Ruthardt.PrintPlus.Skripting
{
using System.Collections.Generic;
using Ruthardt.CobraBase.Functions.Access.Ado;
using Ruthardt.PrintPlus.Model.Interfaces;
using Ruthardt.CryptoPlus.BusinessLogic;
public class Verschluesseln : IScriptAction
{
public void Execute(IPrintContext printContext, ICurrentContext currentContext, IChildContext childContext)
{
// Zugriff auf den aktuellen Datensatz
var data = currentContext.Data;
// API von CRYPTO+PLUS aufrufen
var cryptoService = new Ruthardt.CryptoPlus.BusinessLogic.CryptoPlusService(printContext.Logger);
// Definiere einen oder mehrere PUBLIC Schlüssel/Benutzer die später lesenden Zugriff haben sollen
var checkUser = new CheckUser(@"\\server7\cobra\CRMPRO\System\Ruthardt\Crypto\BENUTZERNAME.public");
var checkUsers = new List<CheckUser>() { checkUser };
// Feld Version ist hier das Quellfeld
// Feld Passwort_verschlüsselt ist das Zielfeld (Memo-Feld)
data.SetValue("Passwort_verschlüsselt", cryptoService.EncryptDataText(data.GetStringValue("Passwort_unverschlüsselt"), checkUsers));
// Daten speichern
currentContext.SaveChanges = true;
}
}
}
Last updated