5#ifndef CORE_FXCRT_SPAN_UTIL_H_
6#define CORE_FXCRT_SPAN_UTIL_H_
10#include "core/fxcrt/fx_memcpy_wrappers.h"
11#include "third_party/base/check_op.h"
12#include "third_party/base/containers/span.h"
20void spancpy(pdfium::span<T> dst, pdfium::span<U> src) {
21 CHECK_GE(dst.size_bytes(), src.size_bytes());
22 FXSYS_memcpy(dst.data(), src.data(), src.size_bytes());
29void spanmove(pdfium::span<T> dst, pdfium::span<U> src) {
30 CHECK_GE(dst.size_bytes(), src.size_bytes());
31 FXSYS_memmove(dst.data(), src.data(), src.size_bytes());
36void spanset(pdfium::span<T> dst, uint8_t val) {
37 FXSYS_memset(dst.data(), val, dst.size_bytes());
43 FXSYS_memset(dst.data(), 0, dst.size_bytes());
51 CHECK_EQ(s.size_bytes() %
sizeof(T), 0u);
52 CHECK_EQ(
reinterpret_cast<uintptr_t>(s.data()) %
alignof(T), 0u);
53 return {
reinterpret_cast<T*>(s.data()), s.size_bytes() /
sizeof(T)};
void CRYPT_MD5Finish(CRYPT_md5_context *context, uint8_t digest[16])
#define P(a, b, c, d, k, s, t)
#define GET_UINT32(n, b, i)
void CRYPT_ArcFourCryptBlock(pdfium::span< uint8_t > data, pdfium::span< const uint8_t > key)
void CRYPT_ArcFourSetup(CRYPT_rc4_context *context, pdfium::span< const uint8_t > key)
void CRYPT_MD5Update(CRYPT_md5_context *context, pdfium::span< const uint8_t > data)
#define PUT_UINT32(n, b, i)
void CRYPT_ArcFourCrypt(CRYPT_rc4_context *context, pdfium::span< uint8_t > data)
CRYPT_md5_context CRYPT_MD5Start()
void CRYPT_MD5Generate(pdfium::span< const uint8_t > data, uint8_t digest[16])
void CRYPT_SHA1Finish(CRYPT_sha1_context *context, uint8_t digest[20])
void CRYPT_SHA384Finish(CRYPT_sha2_context *context, uint8_t digest[48])
void CRYPT_SHA512Update(CRYPT_sha2_context *context, const uint8_t *data, uint32_t size)
void CRYPT_SHA1Generate(const uint8_t *data, uint32_t size, uint8_t digest[20])
void CRYPT_SHA256Generate(const uint8_t *data, uint32_t size, uint8_t digest[32])
void CRYPT_SHA384Start(CRYPT_sha2_context *context)
void CRYPT_SHA512Generate(const uint8_t *data, uint32_t size, uint8_t digest[64])
void CRYPT_SHA512Finish(CRYPT_sha2_context *context, uint8_t digest[64])
void CRYPT_SHA256Update(CRYPT_sha2_context *context, const uint8_t *data, uint32_t size)
void CRYPT_SHA1Update(CRYPT_sha1_context *context, const uint8_t *data, uint32_t size)
void CRYPT_SHA384Update(CRYPT_sha2_context *context, const uint8_t *data, uint32_t size)
void CRYPT_SHA512Start(CRYPT_sha2_context *context)
void CRYPT_SHA256Finish(CRYPT_sha2_context *context, uint8_t digest[32])
void CRYPT_SHA256Start(CRYPT_sha2_context *context)
void CRYPT_SHA1Start(CRYPT_sha1_context *context)
void CRYPT_SHA384Generate(const uint8_t *data, uint32_t size, uint8_t digest[48])
void CRYPT_AESSetIV(CRYPT_aes_context *context, const uint8_t *iv)
void CRYPT_AESEncrypt(CRYPT_aes_context *context, uint8_t *dest, const uint8_t *src, uint32_t size)
void CRYPT_AESSetKey(CRYPT_aes_context *context, const uint8_t *key, uint32_t keylen)
void CRYPT_AESDecrypt(CRYPT_aes_context *context, uint8_t *dest, const uint8_t *src, uint32_t size)
pdfium::span< T > reinterpret_span(pdfium::span< U > s) noexcept
void spanclr(pdfium::span< T > dst)
void spancpy(pdfium::span< T > dst, pdfium::span< U > src)
void spanset(pdfium::span< T > dst, uint8_t val)
void spanmove(pdfium::span< T > dst, pdfium::span< U > src)
unsigned int keysched[kSchedSize]
static constexpr int kMaxNr
unsigned int invkeysched[kSchedSize]
static constexpr int kSchedSize
static constexpr int kMaxNb
static constexpr int32_t kPermutationLength
int32_t m[kPermutationLength]