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 32 extern "C" { 33 #endif /* __cplusplus */ 34 35 36 37 /* The digest of the given KIND for the empty string. */ 38 const unsigned char * 39 svn__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 */ 45 const char * 46 svn__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 */ 55 const char * 56 svn__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 */ 65 svn_boolean_t 66 svn__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