checksum.h revision 299742
1/* 2 * checksum.h: Converting and comparing checksums 3 * 4 * ==================================================================== 5 * Licensed to the Apache Software Foundation (ASF) under one 6 * or more contributor license agreements. See the NOTICE file 7 * distributed with this work for additional information 8 * regarding copyright ownership. The ASF licenses this file 9 * to you under the Apache License, Version 2.0 (the 10 * "License"); you may not use this file except in compliance 11 * with the License. You may obtain a copy of the License at 12 * 13 * http://www.apache.org/licenses/LICENSE-2.0 14 * 15 * Unless required by applicable law or agreed to in writing, 16 * software distributed under the License is distributed on an 17 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 18 * KIND, either express or implied. See the License for the 19 * specific language governing permissions and limitations 20 * under the License. 21 * ==================================================================== 22 */ 23 24#ifndef SVN_LIBSVN_SUBR_CHECKSUM_H 25#define SVN_LIBSVN_SUBR_CHECKSUM_H 26 27#include <apr_pools.h> 28 29#include "svn_checksum.h" 30 31#ifdef __cplusplus 32extern "C" { 33#endif /* __cplusplus */ 34 35 36 37/* The digest of the given KIND for the empty string. */ 38const unsigned char * 39svn__empty_string_digest(svn_checksum_kind_t kind); 40 41 42/* Return the hex representation of DIGEST, which must be 43 * DIGEST_SIZE bytes long, allocating the string in POOL. 44 */ 45const char * 46svn__digest_to_cstring_display(const unsigned char digest[], 47 apr_size_t digest_size, 48 apr_pool_t *pool); 49 50 51/* Return the hex representation of DIGEST, which must be 52 * DIGEST_SIZE bytes long, allocating the string in POOL. 53 * If DIGEST is all zeros, then return NULL. 54 */ 55const char * 56svn__digest_to_cstring(const unsigned char digest[], 57 apr_size_t digest_size, 58 apr_pool_t *pool); 59 60 61/* Compare digests D1 and D2, each DIGEST_SIZE bytes long. 62 * If neither is all zeros, and they do not match, then return FALSE; 63 * else return TRUE. 64 */ 65svn_boolean_t 66svn__digests_match(const unsigned char d1[], 67 const unsigned char d2[], 68 apr_size_t digest_size); 69 70#ifdef __cplusplus 71} 72#endif /* __cplusplus */ 73 74#endif /* SVN_LIBSVN_SUBR_CHECKSUM_H */ 75