diff options
author | Princess of Sleeping | 2018-08-30 01:56:03 +0900 |
---|---|---|
committer | devnoname120 | 2018-08-29 18:56:03 +0200 |
commit | b1a5f1913bae700610a8284bb3f39ea2494f5660 (patch) | |
tree | 715ae23ef46ed004b31bdc9e7569e1ab058d4c7a /include | |
parent | Update UDCD (diff) | |
download | vds-libraries-b1a5f1913bae700610a8284bb3f39ea2494f5660.tar.gz |
Add psp2kern/kernel/utils.h (#349)
Diffstat (limited to 'include')
-rw-r--r-- | include/kernel/kernel/utils.h | 67 |
1 files changed, 67 insertions, 0 deletions
diff --git a/include/kernel/kernel/utils.h b/include/kernel/kernel/utils.h new file mode 100644 index 0000000..bbfaaf7 --- /dev/null +++ b/include/kernel/kernel/utils.h @@ -0,0 +1,67 @@ +#ifndef _PSP2_KERNEL_UTILS_H_ +#define _PSP2_KERNEL_UTILS_H_ + +#include <psp2kern/types.h> + +#ifdef __cplusplus +extern "C" { +#endif + +#define SCE_SHA1_BLOCK_SIZE 64 +#define SCE_SHA1_DIGEST_SIZE 20 +#define SCE_SHA224_BLOCK_SIZE 64 +#define SCE_SHA224_DIGEST_SIZE 28 +#define SCE_SHA256_BLOCK_SIZE 64 +#define SCE_SHA256_DIGEST_SIZE 32 + +typedef struct SceSha1Context { + uint32_t h[5]; + uint16_t usRemains; + uint16_t usComputed; + uint64_t ullTotalLen; + char buf[SCE_SHA1_BLOCK_SIZE]; + char result[SCE_SHA1_DIGEST_SIZE]; + uint32_t pad; +} SceSha1Context; + +typedef struct SceSha224Context { + uint32_t h[8]; + uint32_t pad; + uint16_t usRemains; + uint16_t usComputed; + uint64_t ullTotalLen; + char buf[SCE_SHA224_BLOCK_SIZE]; + char result[SCE_SHA224_DIGEST_SIZE]; + uint32_t pad2; +} SceSha224Context; + +typedef struct SceSha256Context { + uint32_t h[8]; + uint32_t pad; + uint16_t usRemains; + uint16_t usComputed; + uint64_t ullTotalLen; + char buf[SCE_SHA256_BLOCK_SIZE]; + char result[SCE_SHA256_DIGEST_SIZE]; +} SceSha256Context; + +int sceSha1BlockInit(SceSha1Context *pContext); +int sceSha1BlockUpdate(SceSha1Context *pContext, const void *plain, uint32_t len); +int sceSha1BlockResult(SceSha1Context *pContext, char *digest); +int sceSha1Digest(const void *plain, uint32_t len, char *result); + +int sceSha224BlockInit(SceSha224Context *pContext); +int sceSha224BlockUpdate(SceSha224Context *pContext, const void *plain, uint32_t len); +int sceSha224BlockResult(SceSha224Context *pContext, char *digest); +int sceSha224Digest(const void *plain, uint32_t len, char *result); + +int sceSha256BlockInit(SceSha256Context *pContext); +int sceSha256BlockUpdate(SceSha256Context *pContext, const void *plain, uint32_t len); +int sceSha256BlockResult(SceSha256Context *pContext, char *digest); +int sceSha256Digest(const void *plain, uint32_t len, char *result); + +#ifdef __cplusplus +} +#endif + +#endif /* _PSP2_KERNEL_UTILS_H_ */ |