blob: 8d6c24701926b0b2325d69cb13ab2e3a2da84880 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
|
if (srclen-- == 0) {
break;
}
*o++ = avx2_base64_table_enc[*c >> 2];
st.carry = (*c++ << 4) & 0x30;
st.bytes++;
outl += 1;
case 1: if (srclen-- == 0) {
break;
}
*o++ = avx2_base64_table_enc[st.carry | (*c >> 4)];
st.carry = (*c++ << 2) & 0x3C;
st.bytes++;
outl += 1;
case 2: if (srclen-- == 0) {
break;
}
*o++ = avx2_base64_table_enc[st.carry | (*c >> 6)];
*o++ = avx2_base64_table_enc[*c++ & 0x3F];
st.bytes = 0;
outl += 2;
}
}
state->bytes = st.bytes;
state->carry = st.carry;
*outlen = outl;
|