mode_pad.h

来自「含有多种公开密钥算法、多种块加密、多种数据流加密、多种HASH函数、多种Chec」· C头文件 代码 · 共 70 行

H
70
字号
/************************************************** CBC Padding Methods Header File                ** (C) 1999-2002 The Botan Project                **************************************************/#ifndef BOTAN_PADDING_H__#define BOTAN_PADDING_H__#include <botan/types.h>#include <botan/exceptn.h>#include <string>namespace Botan {/************************************************** Block Cipher Mode Padding Method Base Class    **************************************************/class BlockCipherModePaddingMethod   {   public:      virtual void pad(byte[], u32bit, u32bit) const = 0;      virtual u32bit unpad(const byte[], u32bit) const = 0;      virtual u32bit pad_bytes(u32bit, u32bit) const = 0;      virtual bool valid_blocksize(u32bit) const = 0;      virtual std::string name() const = 0;   };/************************************************** PKCS#7 Padding                                 **************************************************/class PKCS7_Padding : public BlockCipherModePaddingMethod   {   public:      void pad(byte[], u32bit, u32bit) const;      u32bit unpad(const byte[], u32bit) const;      u32bit pad_bytes(u32bit bs, u32bit pos) const { return (bs - pos); }      bool valid_blocksize(u32bit) const;      std::string name() const { return "PKCS7"; }   };/************************************************** One And Zeros Padding                          **************************************************/class OneAndZeros_Padding : public BlockCipherModePaddingMethod   {   public:      void pad(byte[], u32bit, u32bit) const;      u32bit unpad(const byte[], u32bit) const;      u32bit pad_bytes(u32bit bs, u32bit pos) const { return (bs - pos); }      bool valid_blocksize(u32bit) const;      std::string name() const { return "OneAndZeros"; }   };/************************************************** Null Padding                                   **************************************************/class Null_Padding : public BlockCipherModePaddingMethod   {   public:      void pad(byte[], u32bit, u32bit) const { return; }      u32bit unpad(const byte[], u32bit size) const { return size; }      u32bit pad_bytes(u32bit, u32bit) const { return 0; }      bool valid_blocksize(u32bit) const { return true; }      std::string name() const { return "NoPadding"; }   };}#endif

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?