diff options
Diffstat (limited to 'src/lib/utils/get_byte.h')
-rw-r--r-- | src/lib/utils/get_byte.h | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/src/lib/utils/get_byte.h b/src/lib/utils/get_byte.h new file mode 100644 index 000000000..6f8ef2632 --- /dev/null +++ b/src/lib/utils/get_byte.h @@ -0,0 +1,30 @@ +/* +* Read out bytes +* (C) 1999-2007 Jack Lloyd +* +* Distributed under the terms of the Botan license +*/ + +#ifndef BOTAN_GET_BYTE_H__ +#define BOTAN_GET_BYTE_H__ + +#include <botan/types.h> + +namespace Botan { + +/** +* Byte extraction +* @param byte_num which byte to extract, 0 == highest byte +* @param input the value to extract from +* @return byte byte_num of input +*/ +template<typename T> inline byte get_byte(size_t byte_num, T input) + { + return static_cast<byte>( + input >> ((sizeof(T)-1-(byte_num&(sizeof(T)-1))) << 3) + ); + } + +} + +#endif |