staticint encode_bits(int c)
{ return pem_key[c];
}
staticint decode_bits(char c)
{ if (c >= 'A' && c <= 'Z') return c - 'A'; if (c >= 'a' && c <= 'z') return c - 'a' + 26; if (c >= '0' && c <= '9') return c - '0' + 52; if (c == '+') return 62; if (c == '/') return 63; if (c == '=') return 0; /* just non-negative, please */ return -EINVAL;
}
int ceph_armor(char *dst, constchar *src, constchar *end)
{ int olen = 0; int line = 0;
int ceph_unarmor(char *dst, constchar *src, constchar *end)
{ int olen = 0;
while (src < end) { int a, b, c, d;
if (src[0] == '\n') {
src++; continue;
} if (src + 4 > end) return -EINVAL;
a = decode_bits(src[0]);
b = decode_bits(src[1]);
c = decode_bits(src[2]);
d = decode_bits(src[3]); if (a < 0 || b < 0 || c < 0 || d < 0) return -EINVAL;
*dst++ = (a << 2) | (b >> 4); if (src[2] == '=') return olen + 1;
*dst++ = ((b & 15) << 4) | (c >> 2); if (src[3] == '=') return olen + 2;
*dst++ = ((c & 3) << 6) | d;
olen += 3;
src += 4;
} return olen;
}
Messung V0.5
¤ Dauer der Verarbeitung: 0.11 Sekunden
(vorverarbeitet)
¤
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.