00001 /** @file 00002 00003 @section license License 00004 00005 Licensed to the Apache Software Foundation (ASF) under one 00006 or more contributor license agreements. See the NOTICE file 00007 distributed with this work for additional information 00008 regarding copyright ownership. The ASF licenses this file 00009 to you under the Apache License, Version 2.0 (the 00010 "License"); you may not use this file except in compliance 00011 with the License. You may obtain a copy of the License at 00012 00013 http://www.apache.org/licenses/LICENSE-2.0 00014 00015 Unless required by applicable law or agreed to in writing, software 00016 distributed under the License is distributed on an "AS IS" BASIS, 00017 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 00018 See the License for the specific language governing permissions and 00019 limitations under the License. 00020 */ 00021 00022 #ifndef __HASH_MD5_H__ 00023 #define __HASH_MD5_H__ 00024 00025 #include "Hash.h" 00026 #include <openssl/evp.h> 00027 00028 struct ATSHashMD5 : ATSHash { 00029 ATSHashMD5(void); 00030 void update(const void *data, size_t len); 00031 void final(void); 00032 const void *get(void) const; 00033 size_t size(void) const; 00034 void clear(void); 00035 ~ATSHashMD5(); 00036 00037 private: 00038 EVP_MD_CTX ctx; 00039 unsigned char md_value[EVP_MAX_MD_SIZE]; 00040 unsigned int md_len; 00041 bool finalized; 00042 }; 00043 00044 #endif