You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
//-----------------------------------------------------------------------
// <copyright file="AEncryption.cs" company="Origtek">
// AEncryption belongs to Copyright (c) Origtek. All rights reserved.
// </copyright>
//-----------------------------------------------------------------------
namespace OT.COM.Encryption { using OT.COM.LogisticsUtil; using System;
/// <summary>
/// Handle AEncryption Unit test.
/// </summary>
public abstract partial class AEncryption {
/// <summary>
/// String encryption
/// </summary>
/// <param name="i_di">
/// Data to encrypt. Key/IV are byte []
/// </param>
/// <returns>
/// Encrypt result
/// </returns>
public ResultInfo EncryptString(DataInfoByte i_di) { ResultInfo ri = new();
try { ri.Result = System.Text.Encoding.Unicode.GetString( this.EncryptStringToByte( i_di.Text, i_di.Key, i_di.IV)); ri.Success = true; } catch (Exception ex) { ri.Message = Util.GetLastExceptionMsg(ex); }
return ri; }
/// <summary>
/// String encryption
/// </summary>
/// <param name="i_di">
/// Data to encrypt. Key/IV are string
/// </param>
/// <returns>
/// Encrypt result
/// </returns>
public ResultInfo EncryptString(DataInfo i_di) { return this.EncryptString(new DataInfoByte() { Text = i_di.Text, Key = System.Text.Encoding.Unicode.GetBytes(i_di.Key), IV = System.Text.Encoding.Unicode.GetBytes(i_di.IV) }); }
/// <summary>
/// String decryption
/// </summary>
/// <param name="i_di">
/// Data to decrypt. Key/IV are byte []
/// </param>
/// <returns>
/// Decrypt result
/// </returns>
public ResultInfo DecryptString(DataInfoByte i_di) { ResultInfo ri = new();
try { ri.Result = this.DecryptByteToString( System.Text.Encoding.Unicode.GetBytes(i_di.Text), i_di.Key, i_di.IV); ri.Success = true; } catch (Exception ex) { ri.Message = Util.GetLastExceptionMsg(ex); }
return ri; }
/// <summary>
/// String decryption
/// </summary>
/// <param name="i_di">
/// Data to decrypt. Key/IV are string
/// </param>
/// <returns>
/// Decrypt result
/// </returns>
public ResultInfo DecryptString(DataInfo i_di) { return this.DecryptString(new DataInfoByte() { Text = i_di.Text, Key = System.Text.Encoding.Unicode.GetBytes(i_di.Key), IV = System.Text.Encoding.Unicode.GetBytes(i_di.IV) }); }
/// <summary>
/// Main encrypt function
/// </summary>
/// <param name="plainText">
/// Plain text to be encrypt
/// </param>
/// <param name="byaKey">
/// Encrypt key
/// </param>
/// <param name="byaIV">
/// Encrypt initial vector
/// </param>
/// <returns>
/// Encrypt result byte
/// </returns>
public abstract byte[] EncryptStringToByte(string plainText, byte[] byaKey, byte[] byaIV);
/// <summary>
/// Main decrypt function
/// </summary>
/// <param name="cipherText">
/// Plain text to be decrypt
/// </param>
/// <param name="byaKey">
/// decrypt key
/// </param>
/// <param name="byaIV">
/// decrypt initial vector
/// </param>
/// <returns>
/// decrypt result
/// </returns>
public abstract string DecryptByteToString(byte[] cipherText, byte[] byaKey, byte[] byaIV);
/// <summary>
/// Data structure to process
/// </summary>
public class DataInfo { /// <summary>
/// Initializes a new instance of the <see cref="DataInfo" /> class.
/// </summary>
public DataInfo() { this.Text = null; this.Key = null; this.IV = null; }
/// <summary>
/// Gets or sets data string
/// </summary>
public string Text { get; set; }
/// <summary>
/// Gets or sets Encrypt/Decrypt key
/// </summary>
public string Key { get; set; }
/// <summary>
/// Gets or sets Encrypt/Decrypt initial vector
/// </summary>
public string IV { get; set; } }
/// <summary>
/// Data structure to process
/// </summary>
public class DataInfoByte { /// <summary>
/// Initializes a new instance of the <see cref="DataInfoByte" /> class.
/// </summary>
public DataInfoByte() { this.Text = null; this.Key = null; this.IV = null; }
/// <summary>
/// Gets or sets data string
/// </summary>
public string Text { get; set; }
/// <summary>
/// Gets or sets Encrypt/Decrypt key
/// </summary>
public byte[] Key { get; set; }
/// <summary>
/// Gets or sets Encrypt/Decrypt initial vector
/// </summary>
public byte[] IV { get; set; } }
/// <summary>
/// Data structure of encrypt/decrypt result
/// </summary>
public class ResultInfo { /// <summary>
/// Initializes a new instance of the <see cref="ResultInfo" /> class.
/// </summary>
public ResultInfo() { this.Success = false; this.Message = null; this.Result = null; }
/// <summary>
/// Gets or sets a value indicating whether success or not
/// </summary>
public bool Success { get; set; }
/// <summary>
/// Gets or sets Encrypt/Decrypt result message
/// </summary>
public string Message { get; set; }
/// <summary>
/// Gets or sets Encrypt/Decrypt result data
/// </summary>
public string Result { get; set; } } }
}
|