| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384 |
- { *********************************************************************************** }
- { * CryptoLib Library * }
- { * Copyright (c) 2018 - 20XX Ugochukwu Mmaduekwe * }
- { * Github Repository <https://github.com/Xor-el> * }
- { * Distributed under the MIT software license, see the accompanying file LICENSE * }
- { * or visit http://www.opensource.org/licenses/mit-license.php. * }
- { * Acknowledgements: * }
- { * * }
- { * Thanks to Sphere 10 Software (http://www.sphere10.com/) for sponsoring * }
- { * development of this library * }
- { * ******************************************************************************* * }
- (* &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& *)
- unit ClpIBlockCipherPadding;
- {$I ..\Include\CryptoLib.inc}
- interface
- uses
- ClpISecureRandom,
- ClpCryptoLibTypes;
- type
- /// <remarks>Block cipher padders are expected to conform to this interface.</remarks>
- IBlockCipherPadding = interface(IInterface)
- ['{BF2886A5-1020-4270-B8E5-3BA9FDB9DA56}']
- /// <summary>
- /// Initialise the padder.
- /// </summary>
- /// <param name="random">
- /// param parameters, if any required.
- /// </param>
- procedure Init(const random: ISecureRandom);
- /// <returns>
- /// return the name of the algorithm the cipher implements.
- /// </returns>
- function GetPaddingName: String;
- /// <summary>
- /// Return the name of the algorithm the cipher implements.
- /// </summary>
- property PaddingName: String read GetPaddingName;
- /// <summary>
- /// add the pad bytes to the passed in block, returning the number of
- /// bytes added.
- /// </summary>
- /// <param name="input">
- /// input block to pad
- /// </param>
- /// <param name="inOff">
- /// offset to start the padding from in the block
- /// </param>
- /// <returns>
- /// returns number of bytes added
- /// </returns>
- function AddPadding(const input: TCryptoLibByteArray; inOff: Int32): Int32;
- /// <summary>
- /// return the number of pad bytes present in the block.
- /// </summary>
- /// <param name="input">
- /// block to count pad bytes in
- /// </param>
- /// <returns>
- /// the number of pad bytes present in the block.
- /// </returns>
- /// <exception cref="EInvalidCipherTextCryptoLibException">
- /// if the padding is badly formed or invalid.
- /// </exception>
- function PadCount(const input: TCryptoLibByteArray): Int32;
- end;
- implementation
- end.
|