| 80 | MALLOC_DECLARE(M_PADLOCK); |
| 81 | |
| 82 | static __inline void |
| 83 | padlock_cbc(void *in, void *out, size_t count, void *key, union padlock_cw *cw, |
| 84 | void *iv) |
| 85 | { |
| 86 | #ifdef __GNUCLIKE_ASM |
| 87 | /* The .byte line is really VIA C3 "xcrypt-cbc" instruction */ |
| 88 | __asm __volatile( |
| 89 | "pushf \n\t" |
| 90 | "popf \n\t" |
| 91 | "rep \n\t" |
| 92 | ".byte 0x0f, 0xa7, 0xd0" |
| 93 | : "+a" (iv), "+c" (count), "+D" (out), "+S" (in) |
| 94 | : "b" (key), "d" (cw) |
| 95 | : "cc", "memory" |
| 96 | ); |
| 97 | #endif |
| 98 | } |
| 99 | |
| 100 | static void |
| 101 | padlock_cipher_key_setup(struct padlock_session *ses, const void *key, int klen) |
no outgoing calls
no test coverage detected