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