123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293 |
- /*
- * Tencent is pleased to support the open source community by making IoT Hub
- available.
- * Copyright (C) 2016 THL A29 Limited, a Tencent company. All rights reserved.
- * Licensed under the MIT License (the "License"); you may not use this file
- except in
- * compliance with the License. You may obtain a copy of the License at
- * http://opensource.org/licenses/MIT
- * Unless required by applicable law or agreed to in writing, software
- distributed under the License is
- * distributed on an "AS IS" basis, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- KIND,
- * either express or implied. See the License for the specific language
- governing permissions and
- * limitations under the License.
- *
- */
- #ifndef QCLOUD_IOT_UTILS_SHA1_H_
- #define QCLOUD_IOT_UTILS_SHA1_H_
- #include "qcloud_iot_import.h"
- /**
- * \brief SHA-1 context structure
- */
- typedef struct {
- uint32_t total[2]; /*!< number of bytes processed */
- uint32_t state[5]; /*!< intermediate digest state */
- unsigned char buffer[64]; /*!< data block being processed */
- } iot_sha1_context;
- /**
- * \brief Initialize SHA-1 context
- *
- * \param ctx SHA-1 context to be initialized
- */
- void utils_sha1_init(iot_sha1_context *ctx);
- /**
- * \brief Clear SHA-1 context
- *
- * \param ctx SHA-1 context to be cleared
- */
- void utils_sha1_free(iot_sha1_context *ctx);
- /**
- * \brief Clone (the state of) a SHA-1 context
- *
- * \param dst The destination context
- * \param src The context to be cloned
- */
- void utils_sha1_clone(iot_sha1_context *dst, const iot_sha1_context *src);
- /**
- * \brief SHA-1 context setup
- *
- * \param ctx context to be initialized
- */
- void utils_sha1_starts(iot_sha1_context *ctx);
- /**
- * \brief SHA-1 process buffer
- *
- * \param ctx SHA-1 context
- * \param input buffer holding the data
- * \param ilen length of the input data
- */
- void utils_sha1_update(iot_sha1_context *ctx, const unsigned char *input, size_t ilen);
- /**
- * \brief SHA-1 final digest
- *
- * \param ctx SHA-1 context
- * \param output SHA-1 checksum result
- */
- void utils_sha1_finish(iot_sha1_context *ctx, unsigned char output[20]);
- /* Internal use */
- void utils_sha1_process(iot_sha1_context *ctx, const unsigned char data[64]);
- /**
- * \brief Output = SHA-1( input buffer )
- *
- * \param input buffer holding the data
- * \param ilen length of the input data
- * \param output SHA-1 checksum result
- */
- void utils_sha1(const unsigned char *input, size_t ilen, unsigned char output[20]);
- #endif
|