mirror of
https://github.com/ipxe/ipxe
synced 2025-12-22 04:50:25 +03:00
[crypto] Use standard bit-rotation functions
Signed-off-by: Michael Brown <mcb30@ipxe.org>
This commit is contained in:
@@ -10,19 +10,23 @@ FILE_LICENCE ( GPL2_OR_LATER );
|
||||
|
||||
#include <stdint.h>
|
||||
|
||||
static inline uint32_t rol32 ( uint32_t data, unsigned int rotation ) {
|
||||
static inline __attribute__ (( always_inline )) uint32_t
|
||||
rol32 ( uint32_t data, unsigned int rotation ) {
|
||||
return ( ( data << rotation ) | ( data >> ( 32 - rotation ) ) );
|
||||
}
|
||||
|
||||
static inline uint32_t ror32 ( uint32_t data, unsigned int rotation ) {
|
||||
static inline __attribute__ (( always_inline )) uint32_t
|
||||
ror32 ( uint32_t data, unsigned int rotation ) {
|
||||
return ( ( data >> rotation ) | ( data << ( 32 - rotation ) ) );
|
||||
}
|
||||
|
||||
static inline uint64_t rol64 ( uint64_t data, unsigned int rotation ) {
|
||||
static inline __attribute__ (( always_inline )) uint64_t
|
||||
rol64 ( uint64_t data, unsigned int rotation ) {
|
||||
return ( ( data << rotation ) | ( data >> ( 64 - rotation ) ) );
|
||||
}
|
||||
|
||||
static inline uint64_t ror64 ( uint64_t data, unsigned int rotation ) {
|
||||
static inline __attribute__ (( always_inline )) uint64_t
|
||||
ror64 ( uint64_t data, unsigned int rotation ) {
|
||||
return ( ( data >> rotation ) | ( data << ( 64 - rotation ) ) );
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user