diff --git a/crypto/modes/ocb128.c b/crypto/modes/ocb128.c
index d49aa6e..6206755 100644
--- a/crypto/modes/ocb128.c
+++ b/crypto/modes/ocb128.c
@@ -78,7 +78,8 @@
 /*
  * Shift a block of 16 bytes left by shift bits
  */
-static void ocb_block_lshift(OCB_BLOCK *in, size_t shift, OCB_BLOCK *out)
+static void ocb_block_lshift(const unsigned char *in, size_t shift,
+                             unsigned char *out)
 {
     unsigned char shift_mask;
     int i;
@@ -88,13 +89,13 @@
     shift_mask <<= (8 - shift);
     for (i = 15; i >= 0; i--) {
         if (i > 0) {
-            mask[i - 1] = in->c[i] & shift_mask;
+            mask[i - 1] = in[i] & shift_mask;
             mask[i - 1] >>= 8 - shift;
         }
-        out->c[i] = in->c[i] << shift;
+        out[i] = in[i] << shift;
 
         if (i != 15) {
-            out->c[i] ^= mask[i];
+            out[i] ^= mask[i];
         }
     }
 }
@@ -114,7 +115,7 @@
     mask >>= 7;
     mask *= 135;
 
-    ocb_block_lshift(in, 1, out);
+    ocb_block_lshift(in->c, 1, out->c);
 
     out->c[15] ^= mask;
 }
@@ -307,8 +308,7 @@
 
     /* Offset_0 = Stretch[1+bottom..128+bottom] */
     shift = bottom % 8;
-    ocb_block_lshift((OCB_BLOCK *)(stretch + (bottom / 8)), shift,
-                     &ctx->offset);
+    ocb_block_lshift(stretch + (bottom / 8), shift, ctx->offset.c);
     mask = 0xff;
     mask <<= 8 - shift;
     ctx->offset.c[15] |=
