Page Menu
Home
Phorge
Search
Configure Global Search
Log In
Files
F7892771
sha256.cpp
No One
Temporary
Actions
Download File
Edit File
Delete File
View Transforms
Subscribe
Award Token
Flag For Later
Size
1 KB
Referenced Files
None
Subscribers
None
sha256.cpp
View Options
/*
* This file is part of libkazv.
* SPDX-FileCopyrightText: 2021 Tusooa Zhu <tusooa@kazv.moe>
* SPDX-License-Identifier: AGPL-3.0-or-later
*/
#include
<cryptopp/sha.h>
#include
"base64.hpp"
#include
"sha256.hpp"
namespace
Kazv
{
struct
SHA256Desc
::
Private
{
using
ImplT
=
CryptoPP
::
SHA256
;
ImplT
algo
;
};
SHA256Desc
::
SHA256Desc
()
:
m_d
(
std
::
make_unique
<
Private
>
())
{
}
KAZV_DEFINE_COPYABLE_UNIQUE_PTR
(
SHA256Desc
,
m_d
)
SHA256Desc
::~
SHA256Desc
()
=
default
;
SHA256Desc
SHA256Desc::process
(
DataT
data
)
const
&
{
auto
next
=
*
this
;
next
.
processInPlace
(
std
::
move
(
data
));
return
next
;
}
SHA256Desc
SHA256Desc::process
(
DataT
data
)
&&
{
auto
next
=
std
::
move
(
*
this
);
next
.
processInPlace
(
std
::
move
(
data
));
return
next
;
}
void
SHA256Desc::processInPlace
(
DataT
data
)
{
m_d
->
algo
.
Update
(
reinterpret_cast
<
const
unsigned
char
*>
(
data
.
data
()),
data
.
size
());
}
std
::
string
SHA256Desc::get
()
const
{
auto
algo
=
m_d
->
algo
;
std
::
string
res
(
algo
.
DigestSize
(),
0
);
algo
.
Final
(
reinterpret_cast
<
unsigned
char
*>
(
res
.
data
()));
return
encodeBase64
(
res
);
}
}
File Metadata
Details
Attached
Mime Type
text/x-c++
Expires
Thu, Oct 2, 4:38 AM (1 d, 8 h)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
470623
Default Alt Text
sha256.cpp (1 KB)
Attached To
Mode
rL libkazv
Attached
Detach File
Event Timeline
Log In to Comment