Added support for CCM and CCM_8 cipher suites.
[BearSSL] / src / codec / pemdec.t0
index 7a0798c..4ebf0dd 100644 (file)
@@ -24,7 +24,7 @@ preamble {
 
 #include "inner.h"
 
-#define CTX   ((br_pem_decoder_context *)((unsigned char *)t0ctx - offsetof(br_pem_decoder_context, cpu)))
+#define CTX   ((br_pem_decoder_context *)(void *)((unsigned char *)t0ctx - offsetof(br_pem_decoder_context, cpu)))
 
 /* see bearssl_pem.h */
 void
@@ -144,7 +144,8 @@ cc: read8-native ( -- x ) {
        begin
                over ifnot 2drop skip-newline 0 ret then
                read8 dup `\n = if 2drop orig-len swap - ret then
-               norm-upper over set8 1+ swap 1- swap
+               dup `\r = if drop else norm-upper over set8 then
+               1+ swap 1- swap
        again ;
 
 \ Remove trailing dashes from the name buffer.
@@ -203,7 +204,9 @@ cc: write8 ( x -- ) {
 \ Flush the output buffer.
 cc: flush-buf ( -- ) {
        if (CTX->ptr > 0) {
-               CTX->dest(CTX->dest_ctx, CTX->buf, CTX->ptr);
+               if (CTX->dest) {
+                       CTX->dest(CTX->dest_ctx, CTX->buf, CTX->ptr);
+               }
                CTX->ptr = 0;
        }
 }