Standard PEM write 0:char*:"-----START TEST-----\n":char*:"-----END TEST-----\n":hex:"000102030405060708090A0B0C0D0E0F000102030405060708090A0B0C0D0E0F":char*:"-----START TEST-----\nAAECAwQFBgcICQoLDA0ODwABAgMEBQYHCAkKCwwNDg8=\n-----END TEST-----\n" PEM write (zero data) 0:char*:"-----START TEST-----\n":char*:"-----END TEST-----\n":hex:"":char*:"-----START TEST-----\n-----END TEST-----\n" PEM write (one byte) 0:char*:"-----START TEST-----\n":char*:"-----END TEST-----\n":hex:"00":char*:"-----START TEST-----\nAA==\n-----END TEST-----\n" PEM write (more than line size) 0:char*:"-----START TEST-----\n":char*:"-----END TEST-----\n":hex:"000102030405060708090A0B0C0D0E0F000102030405060708090A0B0C0D0E0F000102030405060708090A0B0C0D0E0F000102030405060708090A0B0C0D0E0F000102030405060708090A0B0C0D0E0F":char*:"-----START TEST-----\nAAECAwQFBgcICQoLDA0ODwABAgMEBQYHCAkKCwwNDg8AAQIDBAUGBwgJCgsMDQ4P\nAAECAwQFBgcICQoLDA0ODwABAgMEBQYHCAkKCwwNDg8=\n-----END TEST-----\n" PEM write (exactly two lines) 0:char*:"-----START TEST-----\n":char*:"-----END TEST-----\n":hex:"000102030405060708090A0B0C0D0E0F000102030405060708090A0B0C0D0E0F000102030405060708090A0B0C0D0E0F000102030405060708090A0B0C0D0E0F000102030405060708090A0B0C0D0E0F000102030405060708090A0B0C0D0E0F":char*:"-----START TEST-----\nAAECAwQFBgcICQoLDA0ODwABAgMEBQYHCAkKCwwNDg8AAQIDBAUGBwgJCgsMDQ4P\nAAECAwQFBgcICQoLDA0ODwABAgMEBQYHCAkKCwwNDg8AAQIDBAUGBwgJCgsMDQ4P\n-----END TEST-----\n" PEM write (exactly two lines + 1) 0:char*:"-----START TEST-----\n":char*:"-----END TEST-----\n":hex:"000102030405060708090A0B0C0D0E0F000102030405060708090A0B0C0D0E0F000102030405060708090A0B0C0D0E0F000102030405060708090A0B0C0D0E0F000102030405060708090A0B0C0D0E0F000102030405060708090A0B0C0D0E0F00":char*:"-----START TEST-----\nAAECAwQFBgcICQoLDA0ODwABAgMEBQYHCAkKCwwNDg8AAQIDBAUGBwgJCgsMDQ4P\nAAECAwQFBgcICQoLDA0ODwABAgMEBQYHCAkKCwwNDg8AAQIDBAUGBwgJCgsMDQ4P\nAA==\n-----END TEST-----\n" PEM write length reporting 1 PEM read (unencrypted, valid) 2:char*:"^":char*:"$":char*:"^\nTWJlZCBUTFM=\n$":char*:"":int:0:hex:"4d62656420544c53" PEM read (unencrypted, empty content) 2:char*:"-----BEGIN EC PRIVATE KEY-----":char*:"-----END EC PRIVATE KEY-----":char*:"-----BEGIN EC PRIVATE KEY-----\n\n-----END EC PRIVATE KEY-----":char*:"":exp:0:hex:"" PEM read (DES-EDE3-CBC + invalid iv) depends_on:0:1:2 2:char*:"^":char*:"$":char*:"^\nProc-Type\: 4,ENCRYPTED\nDEK-Info\: DES-EDE3-CBC,00$":char*:"pwd":exp:1:hex:"" PEM read (DES-CBC + invalid iv) depends_on:0:1:2 2:char*:"^":char*:"$":char*:"^\nProc-Type\: 4,ENCRYPTED\nDEK-Info\: DES-CBC,00$":char*:"pwd":exp:1:hex:"" PEM read (AES-128-CBC + invalid iv) depends_on:0:1:3 2:char*:"^":char*:"$":char*:"^\nProc-Type\: 4,ENCRYPTED\nDEK-Info\: AES-128-CBC,00$":char*:"pwd":exp:1:hex:"" PEM read (unknown encryption algorithm) depends_on:0:1:3 2:char*:"^":char*:"$":char*:"^\nProc-Type\: 4,ENCRYPTED\nDEK-Info\: AES-,00$":char*:"pwd":exp:2:hex:"" PEM read (malformed PEM DES-CBC) depends_on:0:2:1 2:char*:"-----BEGIN EC PRIVATE KEY-----":char*:"-----END EC PRIVATE KEY-----":char*:"-----BEGIN EC PRIVATE KEY-----\nProc-Type\: 4,ENCRYPTED\nDEK-Info\: DES-CBC,AA94892A169FA426\n\nMAAA\n-----END EC PRIVATE KEY-----":char*:"pwd":exp:3:hex:"" PEM read (malformed PEM DES-EDE3-CBC) depends_on:0:2:1 2:char*:"-----BEGIN EC PRIVATE KEY-----":char*:"-----END EC PRIVATE KEY-----":char*:"-----BEGIN EC PRIVATE KEY-----\nProc-Type\: 4,ENCRYPTED\nDEK-Info\: DES-EDE3-CBC,AA94892A169FA426\n\nMAAA\n-----END EC PRIVATE KEY-----":char*:"pwd":exp:3:hex:"" PEM read (malformed PEM AES-128-CBC: 3-byte ciphertext) depends_on:0:3:1 2:char*:"-----BEGIN EC PRIVATE KEY-----":char*:"-----END EC PRIVATE KEY-----":char*:"-----BEGIN EC PRIVATE KEY-----\nProc-Type\: 4,ENCRYPTED\nDEK-Info\: AES-128-CBC,AA94892A169FA426AA94892A169FA426\n\nMAAA\n-----END EC PRIVATE KEY-----":char*:"pwd":exp:4:hex:"" PEM read (malformed PEM AES-128-CBC: 1-byte ciphertext) depends_on:0:3:1 2:char*:"-----BEGIN EC PRIVATE KEY-----":char*:"-----END EC PRIVATE KEY-----":char*:"-----BEGIN EC PRIVATE KEY-----\nProc-Type\: 4,ENCRYPTED\nDEK-Info\: AES-128-CBC,7BA38DE00F67851E4207216809C3BB15\n\n8Q==-----END EC PRIVATE KEY-----":char*:"pwd":exp:4:hex:"" PEM read (malformed PEM AES-128-CBC: empty ciphertext) depends_on:0:3:1 2:char*:"-----BEGIN EC PRIVATE KEY-----":char*:"-----END EC PRIVATE KEY-----":char*:"-----BEGIN EC PRIVATE KEY-----\nProc-Type\: 4,ENCRYPTED\nDEK-Info\: AES-128-CBC,7BA38DE00F67851E4207216809C3BB15\n\n-----END EC PRIVATE KEY-----":char*:"pwd":exp:0:hex:"" PEM read (malformed PEM AES-128-CBC: base64 with missing equals) depends_on:0:3:1 2:char*:"-----BEGIN EC PRIVATE KEY-----":char*:"-----END EC PRIVATE KEY-----":char*:"-----BEGIN EC PRIVATE KEY-----\nProc-Type\: 4,ENCRYPTED\nDEK-Info\: AES-128-CBC,7BA38DE00F67851E4207216809C3BB15\n\n8Q-----END EC PRIVATE KEY-----":char*:"pwd":exp:5:hex:"" PEM read (valid EC key encoded with AES-128-CBC) depends_on:0:3:1 2:char*:"-----BEGIN EC PRIVATE KEY-----":char*:"-----END EC PRIVATE KEY-----":char*:"-----BEGIN EC PRIVATE KEY-----\nProc-Type\: 4,ENCRYPTED\nDEK-Info\: AES-128-CBC,151F851B6A7F3FBDAA5B7173117D0127\n\nLw+0OM+0Bwcl+ls/vxQbLrVshGc7bsNPvvtj2sJeMFFEq3V1mj/IO++0KK/CDhMH\nh6CZPsmgVOeM5uFpqYaq0fJbUduN2eDMWszWRm0SFkY=\n-----END EC PRIVATE KEY-----":char*:"pwdpwd":int:0:hex:"3041020101040f00d8023c809afd45e426d1a4dbe0ffa00706052b81040004a1220320000400da1ecfa53d528237625e119e2e0500d2eb671724f16deb6a63749516b7" PEM read (AES-128-CBC, invalid padding data) depends_on:0:3:1 2:char*:"-----BEGIN EC PRIVATE KEY-----":char*:"-----END EC PRIVATE KEY-----":char*:"-----BEGIN EC PRIVATE KEY-----\nProc-Type\: 4,ENCRYPTED\nDEK-Info\: AES-128-CBC,31323334353637380000000000000000\n\n333hxynfxEdXrSHQfIabxQ==\n-----END EC PRIVATE KEY-----":char*:"password":exp:6:hex:"" PEM read (AES-128-CBC, padding data is larger than AES block length) depends_on:0:3:1 2:char*:"-----BEGIN EC PRIVATE KEY-----":char*:"-----END EC PRIVATE KEY-----":char*:"-----BEGIN EC PRIVATE KEY-----\nProc-Type\: 4,ENCRYPTED\nDEK-Info\: AES-128-CBC,31323334353637380000000000000000\n\n5wA/XVXHuMsQAAOGFQmK0g==\n-----END EC PRIVATE KEY-----":char*:"password":exp:6:hex:"" PEM read (DES-CBC, padding data is larger than DES block length) depends_on:0:2:1 2:char*:"-----BEGIN EC PRIVATE KEY-----":char*:"-----END EC PRIVATE KEY-----":char*:"-----BEGIN EC PRIVATE KEY-----\nProc-Type\: 4,ENCRYPTED\nDEK-Info\: DES-CBC,3132333435363738\n\n6a+B2WineBM=\n-----END EC PRIVATE KEY-----":char*:"password":exp:6:hex:""