1f03f8485e7d1a5258e16e0e376229f431d2c53acMark Salyzyn/* 20a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker** Copyright 2013, The Android Open Source Project 30a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker** 40a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker** Redistribution and use in source and binary forms, with or without 50a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker** modification, are permitted provided that the following conditions are met: 60a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker** * Redistributions of source code must retain the above copyright 70a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker** notice, this list of conditions and the following disclaimer. 80a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker** * Redistributions in binary form must reproduce the above copyright 90a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker** notice, this list of conditions and the following disclaimer in the 100a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker** documentation and/or other materials provided with the distribution. 110a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker** * Neither the name of Google Inc. nor the names of its contributors may 120a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker** be used to endorse or promote products derived from this software 130a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker** without specific prior written permission. 140a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker** 150a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker** THIS SOFTWARE IS PROVIDED BY Google Inc. ``AS IS'' AND ANY EXPRESS OR 160a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker** IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF 170a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker** MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO 180a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker** EVENT SHALL Google Inc. BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 190a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, 200a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker** PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; 210a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker** OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, 220a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker** WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR 230a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker** OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF 240a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker** ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 250a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker*/ 260a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker 270a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker#include <ctype.h> 28f03f8485e7d1a5258e16e0e376229f431d2c53acMark Salyzyn#include <stdio.h> 290a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker#include <stdlib.h> 300a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker#include <string.h> 31f03f8485e7d1a5258e16e0e376229f431d2c53acMark Salyzyn#include <sys/cdefs.h> 320a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker 330a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker#include "mincrypt/rsa.h" 340a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker#include "mincrypt/sha.h" 350a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker 36f03f8485e7d1a5258e16e0e376229f431d2c53acMark Salyzyn#ifndef __unused 37f03f8485e7d1a5258e16e0e376229f431d2c53acMark Salyzyn#define __unused __attribute__((unused)) 38f03f8485e7d1a5258e16e0e376229f431d2c53acMark Salyzyn#endif 39f03f8485e7d1a5258e16e0e376229f431d2c53acMark Salyzyn 400a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker// RSA test data taken from: 410a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker// 420a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker// ftp://ftp.rsa.com/pub/rsalabs/tmp/pkcs1v15sign-vectors.txt 430a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker 440a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker// This is the result (reformatted) of running DumpPublicKey on: 450a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker// 460a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker// # Example 15: A 2048-bit RSA key pair 470a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker// # ----------------------------------- 480a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker// 490a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker// 500a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker// # Public key 510a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker// # ---------- 520a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker// 530a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker// # Modulus: 540a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker// df 27 1f d2 5f 86 44 49 6b 0c 81 be 4b d5 02 97 550a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker// ef 09 9b 00 2a 6f d6 77 27 eb 44 9c ea 56 6e d6 560a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker// a3 98 1a 71 31 2a 14 1c ab c9 81 5c 12 09 e3 20 570a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker// a2 5b 32 46 4e 99 99 f1 8c a1 3a 9f d3 89 25 58 580a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker// f9 e0 ad ef dd 36 50 dd 23 a3 f0 36 d6 0f e3 98 590a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker// 84 37 06 a4 0b 0b 84 62 c8 be e3 bc e1 2f 1f 28 600a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker// 60 c2 44 4c dc 6a 44 47 6a 75 ff 4a a2 42 73 cc 610a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker// be 3b f8 02 48 46 5f 8f f8 c3 a7 f3 36 7d fc 0d 620a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker// f5 b6 50 9a 4f 82 81 1c ed d8 1c da aa 73 c4 91 630a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker// da 41 21 70 d5 44 d4 ba 96 b9 7f 0a fc 80 65 49 640a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker// 8d 3a 49 fd 91 09 92 a1 f0 72 5b e2 4f 46 5c fe 650a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker// 7e 0e ab f6 78 99 6c 50 bc 5e 75 24 ab f7 3f 15 660a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker// e5 be f7 d5 18 39 4e 31 38 ce 49 44 50 6a aa af 670a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker// 3f 9b 23 6d ca b8 fc 00 f8 7a f5 96 fd c3 d9 d6 680a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker// c7 5c d5 08 36 2f ae 2c be dd cc 4c 74 50 b1 7b 690a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker// 77 6c 07 9e cc a1 f2 56 35 1a 43 b9 7d be 21 53 700a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker// 710a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker// # Exponent: 720a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker// 01 00 01 730a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker 740a862dcd637d3ed82861d39bb48a55ed10a796a6Doug ZongkerRSAPublicKey key_15 = { 750a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker .len = 64, 760a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker .n0inv = 0xf0053525, 770a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker .n = {2109612371u,890913721u,3433165398u,2003568542u, 780a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker 1951445371u,3202206796u,909094444u,3344749832u, 790a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker 4257470934u,4168807830u,3401120768u,1067131757u, 800a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker 1349167791u,953043268u,406408753u,3854497749u, 810a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker 2885107477u,3160306980u,2023320656u,2114890742u, 820a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker 1330011390u,4034026466u,2433323681u,2369407485u, 830a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker 4236272969u,2528739082u,3578057914u,3661701488u, 840a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker 2859713681u,3990363354u,1333952796u,4122366106u, 850a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker 914226189u,4173572083u,1212571535u,3191601154u, 860a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker 2722264012u,1786117962u,3697951815u,1623344204u, 870a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker 3777961768u,3367953340u,185304162u,2218198692u, 880a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker 3591365528u,597946422u,3711324381u,4192251375u, 890a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker 3548980568u,2359376543u,1318689265u,2723885638u, 900a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker 302637856u,2882109788u,824841244u,2744654449u, 910a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker 3931533014u,669729948u,711972471u,4010384128u, 920a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker 1272251031u,1795981758u,1602634825u,3743883218u}, 930a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker .rr = {820482522u,2494434288u,1082168230u,731376296u, 940a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker 1306039452u,3139792975u,2575869288u,3874938710u, 950a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker 3198185181u,153506080u,1236489694u,1061859740u, 960a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker 1174461268u,115279508u,1782749185u,238124145u, 970a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker 3587596076u,2259236093u,1112265915u,4048059865u, 980a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker 3890381098u,999426242u,794481771u,3804065613u, 990a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker 2786019148u,461403875u,3072256692u,4079652654u, 1000a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker 3056719901u,1871565394u,212974856u,3359008174u, 1010a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker 1397773937u,3796256698u,914342841u,1097174457u, 1020a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker 3322220191u,3170814748u,2439215020u,618719336u, 1030a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker 3629353460u,496817177u,317052742u,380264245u, 1040a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker 1976007217u,2697736152u,312540864u,4291855337u, 1050a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker 697006561u,4234182488u,3904590917u,2609582216u, 1060a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker 451424084u,1805773827u,776344974u,1064489733u, 1070a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker 2633377036u,1954826648u,3202815814u,2240368662u, 1080a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker 2618582484u,2211196815u,4107362845u,3640258615u}, 1090a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker .exponent = 65537, 1100a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker}; 1110a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker 1120a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker// PKCS#1 v1.5 Signature Example 15.1 1130a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker 1140a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongkerchar* message_1 = 1150a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "f4 5d 55 f3 55 51 e9 75 d6 a8 dc 7e a9 f4 88 59" 1160a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "39 40 cc 75 69 4a 27 8f 27 e5 78 a1 63 d8 39 b3" 1170a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "40 40 84 18 08 cf 9c 58 c9 b8 72 8b f5 f9 ce 8e" 1180a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "e8 11 ea 91 71 4f 47 ba b9 2d 0f 6d 5a 26 fc fe" 1190a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "ea 6c d9 3b 91 0c 0a 2c 96 3e 64 eb 18 23 f1 02" 1200a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "75 3d 41 f0 33 59 10 ad 3a 97 71 04 f1 aa f6 c3" 1210a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "74 27 16 a9 75 5d 11 b8 ee d6 90 47 7f 44 5c 5d" 1220a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "27 20 8b 2e 28 43 30 fa 3d 30 14 23 fa 7f 2d 08" 1230a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "6e 0a d0 b8 92 b9 db 54 4e 45 6d 3f 0d ab 85 d9" 1240a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "53 c1 2d 34 0a a8 73 ed a7 27 c8 a6 49 db 7f a6" 1250a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "37 40 e2 5e 9a f1 53 3b 30 7e 61 32 99 93 11 0e" 1260a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "95 19 4e 03 93 99 c3 82 4d 24 c5 1f 22 b2 6b de" 1270a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "10 24 cd 39 59 58 a2 df eb 48 16 a6 e8 ad ed b5" 1280a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "0b 1f 6b 56 d0 b3 06 0f f0 f1 c4 cb 0d 0e 00 1d" 1290a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "d5 9d 73 be 12"; 1300a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker 1310a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongkerchar* signature_1 = 1320a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "b7 5a 54 66 b6 5d 0f 30 0e f5 38 33 f2 17 5c 8a" 1330a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "34 7a 38 04 fc 63 45 1d c9 02 f0 b7 1f 90 83 45" 1340a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "9e d3 7a 51 79 a3 b7 23 a5 3f 10 51 64 2d 77 37" 1350a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "4c 4c 6c 8d bb 1c a2 05 25 f5 c9 f3 2d b7 76 95" 1360a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "35 56 da 31 29 0e 22 19 74 82 ce b6 99 06 c4 6a" 1370a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "75 8f b0 e7 40 9b a8 01 07 7d 2a 0a 20 ea e7 d1" 1380a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "d6 d3 92 ab 49 57 e8 6b 76 f0 65 2d 68 b8 39 88" 1390a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "a7 8f 26 e1 11 72 ea 60 9b f8 49 fb bd 78 ad 7e" 1400a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "dc e2 1d e6 62 a0 81 36 8c 04 06 07 ce e2 9d b0" 1410a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "62 72 27 f4 49 63 ad 17 1d 22 93 b6 33 a3 92 e3" 1420a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "31 dc a5 4f e3 08 27 52 f4 3f 63 c1 61 b4 47 a4" 1430a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "c6 5a 68 75 67 0d 5f 66 00 fc c8 60 a1 ca eb 0a" 1440a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "88 f8 fd ec 4e 56 43 98 a5 c4 6c 87 f6 8c e0 70" 1450a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "01 f6 21 3a be 0a b5 62 5f 87 d1 90 25 f0 8d 81" 1460a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "da c7 bd 45 86 bc 93 82 19 1f 6d 28 80 f6 22 7e" 1470a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "5d f3 ee d2 1e 77 92 d2 49 48 04 87 f3 65 52 61"; 1480a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker 1490a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker// PKCS#1 v1.5 Signature Example 15.2 1500a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker 1510a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongkerchar *message_2 = 1520a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "c1 4b 4c 60 75 b2 f9 aa d6 61 de f4 ec fd 3c b9 " 1530a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "33 c6 23 f4 e6 3b f5 34 10 d2 f0 16 d1 ab 98 e2 " 1540a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "72 9e cc f8 00 6c d8 e0 80 50 73 7d 95 fd bf 29 " 1550a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "6b 66 f5 b9 79 2a 90 29 36 c4 f7 ac 69 f5 14 53 " 1560a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "ce 43 69 45 2d c2 2d 96 f0 37 74 81 14 66 20 00 " 1570a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "dd 9c d3 a5 e1 79 f4 e0 f8 1f a6 a0 31 1c a1 ae " 1580a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "e6 51 9a 0f 63 ce c7 8d 27 bb 72 63 93 fb 7f 1f " 1590a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "88 cd e7 c9 7f 8a 66 cd 66 30 12 81 da c3 f3 a4 " 1600a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "33 24 8c 75 d6 c2 dc d7 08 b6 a9 7b 0a 3f 32 5e " 1610a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "0b 29 64 f8 a5 81 9e 47 9b "; 1620a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker 1630a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongkerchar* signature_2 = 1640a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "af a7 34 34 62 be a1 22 cc 14 9f ca 70 ab da e7" 1650a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "94 46 67 7d b5 37 36 66 af 7d c3 13 01 5f 4d e7" 1660a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "86 e6 e3 94 94 6f ad 3c c0 e2 b0 2b ed ba 50 47" 1670a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "fe 9e 2d 7d 09 97 05 e4 a3 9f 28 68 32 79 cf 0a" 1680a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "c8 5c 15 30 41 22 42 c0 e9 18 95 3b e0 00 e9 39" 1690a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "cf 3b f1 82 52 5e 19 93 70 fa 79 07 eb a6 9d 5d" 1700a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "b4 63 10 17 c0 e3 6d f7 03 79 b5 db 8d 4c 69 5a" 1710a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "97 9a 8e 61 73 22 40 65 d7 dc 15 13 2e f2 8c d8" 1720a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "22 79 51 63 06 3b 54 c6 51 14 1b e8 6d 36 e3 67" 1730a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "35 bc 61 f3 1f ca 57 4e 53 09 f3 a3 bb df 91 ef" 1740a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "f1 2b 99 e9 cc 17 44 f1 ee 9a 1b d2 2c 5b ad 96" 1750a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "ad 48 19 29 25 1f 03 43 fd 36 bc f0 ac de 7f 11" 1760a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "e5 ad 60 97 77 21 20 27 96 fe 06 1f 9a da 1f c4" 1770a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "c8 e0 0d 60 22 a8 35 75 85 ff e9 fd d5 93 31 a2" 1780a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "8c 4a a3 12 15 88 fb 6c f6 83 96 d8 ac 05 46 59" 1790a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "95 00 c9 70 85 00 a5 97 2b d5 4f 72 cf 8d b0 c8"; 1800a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker 1810a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker// PKCS#1 v1.5 Signature Example 15.3 1820a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker 1830a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongkerchar* message_3 = 1840a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "d0 23 71 ad 7e e4 8b bf db 27 63 de 7a 84 3b 94 " 1850a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "08 ce 5e b5 ab f8 47 ca 3d 73 59 86 df 84 e9 06 " 1860a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "0b db cd d3 a5 5b a5 5d de 20 d4 76 1e 1a 21 d2 " 1870a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "25 c1 a1 86 f4 ac 4b 30 19 d3 ad f7 8f e6 33 46 " 1880a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "67 f5 6f 70 c9 01 a0 a2 70 0c 6f 0d 56 ad d7 19 " 1890a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "59 2d c8 8f 6d 23 06 c7 00 9f 6e 7a 63 5b 4c b3 " 1900a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "a5 02 df e6 8d dc 58 d0 3b e1 0a 11 70 00 4f e7 " 1910a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "4d d3 e4 6b 82 59 1f f7 54 14 f0 c4 a0 3e 60 5e " 1920a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "20 52 4f 24 16 f1 2e ca 58 9f 11 1b 75 d6 39 c6 " 1930a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "1b aa 80 ca fd 05 cf 35 00 24 4a 21 9e d9 ce d9 " 1940a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "f0 b1 02 97 18 2b 65 3b 52 6f 40 0f 29 53 ba 21 " 1950a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "4d 5b cd 47 88 41 32 87 2a e9 0d 4d 6b 1f 42 15 " 1960a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "39 f9 f3 46 62 a5 6d c0 e7 b4 b9 23 b6 23 1e 30 " 1970a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "d2 67 67 97 81 7f 7c 33 7b 5a c8 24 ba 93 14 3b " 1980a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "33 81 fa 3d ce 0e 6a eb d3 8e 67 73 51 87 b1 eb " 1990a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "d9 5c 02 "; 2000a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker 2010a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongkerchar* signature_3 = 2020a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "3b ac 63 f8 6e 3b 70 27 12 03 10 6b 9c 79 aa bd" 2030a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "9f 47 7c 56 e4 ee 58 a4 fc e5 ba f2 ca b4 96 0f" 2040a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "88 39 1c 9c 23 69 8b e7 5c 99 ae df 9e 1a bf 17" 2050a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "05 be 1d ac 33 14 0a db 48 eb 31 f4 50 bb 9e fe" 2060a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "83 b7 b9 0d b7 f1 57 6d 33 f4 0c 1c ba 4b 8d 6b" 2070a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "1d 33 23 56 4b 0f 17 74 11 4f a7 c0 8e 6d 1e 20" 2080a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "dd 8f bb a9 b6 ac 7a d4 1e 26 b4 56 8f 4a 8a ac" 2090a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "bf d1 78 a8 f8 d2 c9 d5 f5 b8 81 12 93 5a 8b c9" 2100a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "ae 32 cd a4 0b 8d 20 37 55 10 73 50 96 53 68 18" 2110a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "ce 2b 2d b7 1a 97 72 c9 b0 dd a0 9a e1 01 52 fa" 2120a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "11 46 62 18 d0 91 b5 3d 92 54 30 61 b7 29 4a 55" 2130a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "be 82 ff 35 d5 c3 2f a2 33 f0 5a aa c7 58 50 30" 2140a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "7e cf 81 38 3c 11 16 74 39 7b 1a 1b 9d 3b f7 61" 2150a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "2c cb e5 ba cd 2b 38 f0 a9 83 97 b2 4c 83 65 8f" 2160a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "b6 c0 b4 14 0e f1 19 70 c4 63 0d 44 34 4e 76 ea" 2170a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "ed 74 dc be e8 11 db f6 57 59 41 f0 8a 65 23 b8"; 2180a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker 2190a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker// PKCS#1 v1.5 Signature Example 15.4 2200a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker 2210a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongkerchar* message_4 = 2220a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "29 03 55 84 ab 7e 02 26 a9 ec 4b 02 e8 dc f1 27 " 2230a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "2d c9 a4 1d 73 e2 82 00 07 b0 f6 e2 1f ec cd 5b " 2240a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "d9 db b9 ef 88 cd 67 58 76 9e e1 f9 56 da 7a d1 " 2250a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "84 41 de 6f ab 83 86 db c6 93 "; 2260a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker 2270a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongkerchar* signature_4 = 2280a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "28 d8 e3 fc d5 dd db 21 ff bd 8d f1 63 0d 73 77" 2290a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "aa 26 51 e1 4c ad 1c 0e 43 cc c5 2f 90 7f 94 6d" 2300a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "66 de 72 54 e2 7a 6c 19 0e b0 22 ee 89 ec f6 22" 2310a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "4b 09 7b 71 06 8c d6 07 28 a1 ae d6 4b 80 e5 45" 2320a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "7b d3 10 6d d9 17 06 c9 37 c9 79 5f 2b 36 36 7f" 2330a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "f1 53 dc 25 19 a8 db 9b df 2c 80 74 30 c4 51 de" 2340a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "17 bb cd 0c e7 82 b3 e8 f1 02 4d 90 62 4d ea 7f" 2350a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "1e ed c7 42 0b 7e 7c aa 65 77 ce f4 31 41 a7 26" 2360a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "42 06 58 0e 44 a1 67 df 5e 41 ee a0 e6 9a 80 54" 2370a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "54 c4 0e ef c1 3f 48 e4 23 d7 a3 2d 02 ed 42 c0" 2380a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "ab 03 d0 a7 cf 70 c5 86 0a c9 2e 03 ee 00 5b 60" 2390a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "ff 35 03 42 4b 98 cc 89 45 68 c7 c5 6a 02 33 55" 2400a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "1c eb e5 88 cf 8b 01 67 b7 df 13 ad ca d8 28 67" 2410a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "68 10 49 9c 70 4d a7 ae 23 41 4d 69 e3 c0 d2 db" 2420a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "5d cb c2 61 3b c1 20 42 1f 9e 36 53 c5 a8 76 72" 2430a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "97 64 3c 7e 07 40 de 01 63 55 45 3d 6c 95 ae 72"; 2440a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker 2450a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker// PKCS#1 v1.5 Signature Example 15.5 2460a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker 2470a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongkerchar* message_5 = 2480a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "bd a3 a1 c7 90 59 ea e5 98 30 8d 3d f6 09 "; 2490a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker 2500a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongkerchar* signature_5 = 2510a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "a1 56 17 6c b9 67 77 c7 fb 96 10 5d bd 91 3b c4" 2520a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "f7 40 54 f6 80 7c 60 08 a1 a9 56 ea 92 c1 f8 1c" 2530a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "b8 97 dc 4b 92 ef 9f 4e 40 66 8d c7 c5 56 90 1a" 2540a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "cb 6c f2 69 fe 61 5b 0f b7 2b 30 a5 13 38 69 23" 2550a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "14 b0 e5 87 8a 88 c2 c7 77 4b d1 69 39 b5 ab d8" 2560a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "2b 44 29 d6 7b d7 ac 8e 5e a7 fe 92 4e 20 a6 ec" 2570a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "66 22 91 f2 54 8d 73 4f 66 34 86 8b 03 9a a5 f9" 2580a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "d4 d9 06 b2 d0 cb 85 85 bf 42 85 47 af c9 1c 6e" 2590a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "20 52 dd cd 00 1c 3e f8 c8 ee fc 3b 6b 2a 82 b6" 2600a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "f9 c8 8c 56 f2 e2 c3 cb 0b e4 b8 0d a9 5e ba 37" 2610a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "1d 8b 5f 60 f9 25 38 74 3d db b5 da 29 72 c7 1f" 2620a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "e7 b9 f1 b7 90 26 8a 0e 77 0f c5 eb 4d 5d d8 52" 2630a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "47 d4 8a e2 ec 3f 26 25 5a 39 85 52 02 06 a1 f2" 2640a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "68 e4 83 e9 db b1 d5 ca b1 90 91 76 06 de 31 e7" 2650a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "c5 18 2d 8f 15 1b f4 1d fe cc ae d7 cd e6 90 b2" 2660a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "16 47 10 6b 49 0c 72 9d 54 a8 fe 28 02 a6 d1 26"; 2670a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker 2680a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker// PKCS#1 v1.5 Signature Example 15.6 2690a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker 2700a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongkerchar* message_6 = 2710a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "c1 87 91 5e 4e 87 da 81 c0 8e d4 35 6a 0c ce ac " 2720a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "1c 4f b5 c0 46 b4 52 81 b3 87 ec 28 f1 ab fd 56 " 2730a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "7e 54 6b 23 6b 37 d0 1a e7 1d 3b 28 34 36 5d 3d " 2740a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "f3 80 b7 50 61 b7 36 b0 13 0b 07 0b e5 8a e8 a4 " 2750a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "6d 12 16 63 61 b6 13 db c4 7d fa eb 4c a7 46 45 " 2760a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "6c 2e 88 83 85 52 5c ca 9d d1 c3 c7 a9 ad a7 6d " 2770a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "6c ";; 2780a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker 2790a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongkerchar* signature_6 = 2800a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "9c ab 74 16 36 08 66 9f 75 55 a3 33 cf 19 6f e3" 2810a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "a0 e9 e5 eb 1a 32 d3 4b b5 c8 5f f6 89 aa ab 0e" 2820a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "3e 65 66 8e d3 b1 15 3f 94 eb 3d 8b e3 79 b8 ee" 2830a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "f0 07 c4 a0 2c 70 71 ce 30 d8 bb 34 1e 58 c6 20" 2840a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "f7 3d 37 b4 ec bf 48 be 29 4f 6c 9e 0e cb 5e 63" 2850a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "fe c4 1f 12 0e 55 53 df a0 eb eb bb 72 64 0a 95" 2860a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "37 ba dc b4 51 33 02 29 d9 f7 10 f6 2e 3e d8 ec" 2870a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "78 4e 50 ee 1d 92 62 b4 26 71 34 00 11 d7 d0 98" 2880a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "c6 f2 55 7b 21 31 fa 9b d0 25 46 36 59 7e 88 ec" 2890a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "b3 5a 24 0e f0 fd 85 95 71 24 df 80 80 fe e1 e1" 2900a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "49 af 93 99 89 e8 6b 26 c8 5a 58 81 fa e8 67 3d" 2910a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "9f d4 08 00 dd 13 4e b9 bd b6 41 0f 42 0b 0a a9" 2920a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "7b 20 ef cf 2e b0 c8 07 fa eb 83 a3 cc d9 b5 1d" 2930a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "45 53 e4 1d fc 0d f6 ca 80 a1 e8 1d c2 34 bb 83" 2940a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "89 dd 19 5a 38 b4 2d e4 ed c4 9d 34 64 78 b9 f1" 2950a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "1f 05 57 20 5f 5b 0b d7 ff e9 c8 50 f3 96 d7 c4";; 2960a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker 2970a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker// PKCS#1 v1.5 Signature Example 15.7 2980a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker 2990a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongkerchar* message_7 = 3000a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "ab fa 2e cb 7d 29 bd 5b cb 99 31 ce 2b ad 2f 74 " 3010a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "38 3e 95 68 3c ee 11 02 2f 08 e8 e7 d0 b8 fa 05 " 3020a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "8b f9 eb 7e b5 f9 88 68 b5 bb 1f b5 c3 1c ed a3 " 3030a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "a6 4f 1a 12 cd f2 0f cd 0e 5a 24 6d 7a 17 73 d8 " 3040a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "db a0 e3 b2 77 54 5b ab e5 8f 2b 96 e3 f4 ed c1 " 3050a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "8e ab f5 cd 2a 56 0f ca 75 fe 96 e0 7d 85 9d ef " 3060a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "b2 56 4f 3a 34 f1 6f 11 e9 1b 3a 71 7b 41 af 53 " 3070a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "f6 60 53 23 00 1a a4 06 c6 "; 3080a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker 3090a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongkerchar* signature_7 = 3100a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "c4 b4 37 bc f7 03 f3 52 e1 fa f7 4e b9 62 20 39" 3110a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "42 6b 56 72 ca f2 a7 b3 81 c6 c4 f0 19 1e 7e 4a" 3120a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "98 f0 ee bc d6 f4 17 84 c2 53 7f f0 f9 9e 74 98" 3130a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "2c 87 20 1b fb c6 5e ae 83 2d b7 1d 16 da ca db" 3140a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "09 77 e5 c5 04 67 9e 40 be 0f 9d b0 6f fd 84 8d" 3150a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "d2 e5 c3 8a 7e c0 21 e7 f6 8c 47 df d3 8c c3 54" 3160a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "49 3d 53 39 b4 59 5a 5b f3 1e 3f 8f 13 81 68 07" 3170a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "37 3d f6 ad 0d c7 e7 31 e5 1a d1 9e b4 75 4b 13" 3180a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "44 85 84 2f e7 09 d3 78 44 4d 8e 36 b1 72 4a 4f" 3190a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "da 21 ca fe e6 53 ab 80 74 7f 79 52 ee 80 4d ea" 3200a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "b1 03 9d 84 13 99 45 bb f4 be 82 00 87 53 f3 c5" 3210a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "4c 78 21 a1 d2 41 f4 21 79 c7 94 ef 70 42 bb f9" 3220a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "95 56 56 22 2e 45 c3 43 69 a3 84 69 7b 6a e7 42" 3230a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "e1 8f a5 ca 7a ba d2 7d 9f e7 10 52 e3 31 0d 0f" 3240a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "52 c8 d1 2e a3 3b f0 53 a3 00 f4 af c4 f0 98 df" 3250a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "4e 6d 88 67 79 d6 45 94 d3 69 15 8f db c1 f6 94"; 3260a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker 3270a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker// PKCS#1 v1.5 Signature Example 15.8 3280a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker 3290a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongkerchar* message_8 = 3300a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "df 40 44 a8 9a 83 e9 fc bf 12 62 54 0a e3 03 8b " 3310a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "bc 90 f2 b2 62 8b f2 a4 46 7a c6 77 22 d8 54 6b " 3320a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "3a 71 cb 0e a4 16 69 d5 b4 d6 18 59 c1 b4 e4 7c " 3330a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "ec c5 93 3f 75 7e c8 6d b0 64 4e 31 18 12 d0 0f " 3340a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "b8 02 f0 34 00 63 9c 0e 36 4d ae 5a eb c5 79 1b " 3350a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "c6 55 76 23 61 bc 43 c5 3d 3c 78 86 76 8f 79 68 " 3360a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "c1 c5 44 c6 f7 9f 7b e8 20 c7 e2 bd 2f 9d 73 e6 " 3370a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "2d ed 6d 2e 93 7e 6a 6d ae f9 0e e3 7a 1a 52 a5 " 3380a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "4f 00 e3 1a dd d6 48 94 cf 4c 02 e1 60 99 e2 9f " 3390a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "9e b7 f1 a7 bb 7f 84 c4 7a 2b 59 48 13 be 02 a1 " 3400a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "7b 7f c4 3b 34 c2 2c 91 92 52 64 12 6c 89 f8 6b " 3410a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "b4 d8 7f 3e f1 31 29 6c 53 a3 08 e0 33 1d ac 8b " 3420a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "af 3b 63 42 22 66 ec ef 2b 90 78 15 35 db da 41 " 3430a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "cb d0 cf 22 a8 cb fb 53 2e c6 8f c6 af b2 ac 06 "; 3440a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker 3450a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongkerchar* signature_8 = 3460a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "14 14 b3 85 67 ae 6d 97 3e de 4a 06 84 2d cc 0e" 3470a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "05 59 b1 9e 65 a4 88 9b db ab d0 fd 02 80 68 29" 3480a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "13 ba cd 5d c2 f0 1b 30 bb 19 eb 81 0b 7d 9d ed" 3490a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "32 b2 84 f1 47 bb e7 71 c9 30 c6 05 2a a7 34 13" 3500a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "90 a8 49 f8 1d a9 cd 11 e5 ec cf 24 6d ba e9 5f" 3510a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "a9 58 28 e9 ae 0c a3 55 03 25 32 6d ee f9 f4 95" 3520a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "30 ba 44 1b ed 4a c2 9c 02 9c 9a 27 36 b1 a4 19" 3530a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "0b 85 08 4a d1 50 42 6b 46 d7 f8 5b d7 02 f4 8d" 3540a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "ac 5f 71 33 0b c4 23 a7 66 c6 5c c1 dc ab 20 d3" 3550a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "d3 bb a7 2b 63 b3 ef 82 44 d4 2f 15 7c b7 e3 a8" 3560a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "ba 5c 05 27 2c 64 cc 1a d2 1a 13 49 3c 39 11 f6" 3570a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "0b 4e 9f 4e cc 99 00 eb 05 6e e5 9d 6f e4 b8 ff" 3580a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "6e 80 48 cc c0 f3 8f 28 36 fd 3d fe 91 bf 4a 38" 3590a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "6e 1e cc 2c 32 83 9f 0c a4 d1 b2 7a 56 8f a9 40" 3600a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "dd 64 ad 16 bd 01 25 d0 34 8e 38 30 85 f0 88 94" 3610a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "86 1c a1 89 87 22 7d 37 b4 2b 58 4a 83 57 cb 04"; 3620a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker 3630a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker// PKCS#1 v1.5 Signature Example 15.9 3640a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker 3650a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongkerchar* message_9 = 3660a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "ea 94 1f f0 6f 86 c2 26 92 7f cf 0e 3b 11 b0 87 " 3670a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "26 76 17 0c 1b fc 33 bd a8 e2 65 c7 77 71 f9 d0 " 3680a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "85 01 64 a5 ee cb cc 5c e8 27 fb fa 07 c8 52 14 " 3690a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "79 6d 81 27 e8 ca a8 18 94 ea 61 ce b1 44 9e 72 " 3700a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "fe a0 a4 c9 43 b2 da 6d 9b 10 5f e0 53 b9 03 9a " 3710a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "9c c5 3d 42 0b 75 39 fa b2 23 9c 6b 51 d1 7e 69 " 3720a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "4c 95 7d 4b 0f 09 84 46 18 79 a0 75 9c 44 01 be " 3730a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "ec d4 c6 06 a0 af bd 7a 07 6f 50 a2 df c2 80 7f " 3740a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "24 f1 91 9b aa 77 46 d3 a6 4e 26 8e d3 f5 f8 e6 " 3750a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "da 83 a2 a5 c9 15 2f 83 7c b0 78 12 bd 5b a7 d3 " 3760a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "a0 79 85 de 88 11 3c 17 96 e9 b4 66 ec 29 9c 5a " 3770a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "c1 05 9e 27 f0 94 15 "; 3780a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker 3790a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongkerchar* signature_9 = 3800a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "ce eb 84 cc b4 e9 09 92 65 65 07 21 ee a0 e8 ec" 3810a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "89 ca 25 bd 35 4d 4f 64 56 49 67 be 9d 4b 08 b3" 3820a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "f1 c0 18 53 9c 9d 37 1c f8 96 1f 22 91 fb e0 dc" 3830a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "2f 2f 95 fe a4 7b 63 9f 1e 12 f4 bc 38 1c ef 0c" 3840a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "2b 7a 7b 95 c3 ad f2 76 05 b7 f6 39 98 c3 cb ad" 3850a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "54 28 08 c3 82 2e 06 4d 4a d1 40 93 67 9e 6e 01" 3860a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "41 8a 6d 5c 05 96 84 cd 56 e3 4e d6 5a b6 05 b8" 3870a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "de 4f cf a6 40 47 4a 54 a8 25 1b bb 73 26 a4 2d" 3880a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "08 58 5c fc fc 95 67 69 b1 5b 6d 7f df 7d a8 4f" 3890a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "81 97 6e aa 41 d6 92 38 0f f1 0e ae cf e0 a5 79" 3900a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "68 29 09 b5 52 1f ad e8 54 d7 97 b8 a0 34 5b 9a" 3910a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "86 4e 05 88 f6 ca dd bf 65 f1 77 99 8e 18 0d 1f" 3920a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "10 24 43 e6 dc a5 3a 94 82 3c aa 9c 3b 35 f3 22" 3930a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "58 3c 70 3a f6 74 76 15 9e c7 ec 93 d1 76 9b 30" 3940a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "0a f0 e7 15 7d c2 98 c6 cd 2d ee 22 62 f8 cd dc" 3950a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "10 f1 1e 01 74 14 71 bb fd 65 18 a1 75 73 45 75"; 3960a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker 3970a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker// PKCS#1 v1.5 Signature Example 15.10 3980a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker 3990a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongkerchar* message_10 = 4000a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "d8 b8 16 45 c1 3c d7 ec f5 d0 0e d2 c9 1b 9a cd " 4010a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "46 c1 55 68 e5 30 3c 4a 97 75 ed e7 6b 48 40 3d " 4020a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "6b e5 6c 05 b6 b1 cf 77 c6 e7 5d e0 96 c5 cb 35 " 4030a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "51 cb 6f a9 64 f3 c8 79 cf 58 9d 28 e1 da 2f 9d " 4040a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "ec "; 4050a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker 4060a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongkerchar* signature_10 = 4070a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "27 45 07 4c a9 71 75 d9 92 e2 b4 47 91 c3 23 c5" 4080a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "71 67 16 5c dd 8d a5 79 cd ef 46 86 b9 bb 40 4b" 4090a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "d3 6a 56 50 4e b1 fd 77 0f 60 bf a1 88 a7 b2 4b" 4100a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "0c 91 e8 81 c2 4e 35 b0 4d c4 dd 4c e3 85 66 bc" 4110a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "c9 ce 54 f4 9a 17 5f c9 d0 b2 25 22 d9 57 90 47" 4120a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "f9 ed 42 ec a8 3f 76 4a 10 16 39 97 94 7e 7d 2b" 4130a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "52 ff 08 98 0e 7e 7c 22 57 93 7b 23 f3 d2 79 d4" 4140a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "cd 17 d6 f4 95 54 63 73 d9 83 d5 36 ef d7 d1 b6" 4150a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "71 81 ca 2c b5 0a c6 16 c5 c7 ab fb b9 26 0b 91" 4160a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "b1 a3 8e 47 24 20 01 ff 45 2f 8d e1 0c a6 ea ea" 4170a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "dc af 9e dc 28 95 6f 28 a7 11 29 1f c9 a8 08 78" 4180a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "b8 ba 4c fe 25 b8 28 1c b8 0b c9 cd 6d 2b d1 82" 4190a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "52 46 ee be 25 2d 99 57 ef 93 70 73 52 08 4e 6d" 4200a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "36 d4 23 55 1b f2 66 a8 53 40 fb 4a 6a f3 70 88" 4210a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "0a ab 07 15 3d 01 f4 8d 08 6d f0 bf be c0 5e 7b" 4220a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "44 3b 97 e7 17 18 97 0e 2f 4b f6 20 23 e9 5b 67"; 4230a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker 4240a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker// PKCS#1 v1.5 Signature Example 15.11 4250a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker 4260a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongkerchar* message_11 = 4270a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "e5 73 9b 6c 14 c9 2d 51 0d 95 b8 26 93 33 37 ff " 4280a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "0d 24 ef 72 1a c4 ef 64 c2 ba d2 64 be 8b 44 ef " 4290a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "a1 51 6e 08 a2 7e b6 b6 11 d3 30 1d f0 06 2d ae " 4300a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "fc 73 a8 c0 d9 2e 2c 52 1f ac bc 7b 26 47 38 76 " 4310a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "7e a6 fc 97 d5 88 a0 ba f6 ce 50 ad f7 9e 60 0b " 4320a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "d2 9e 34 5f cb 1d ba 71 ac 5c 02 89 02 3f e4 a8 " 4330a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "2b 46 a5 40 77 19 19 7d 2e 95 8e 35 31 fd 54 ae " 4340a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "f9 03 aa bb 43 55 f8 83 18 99 4e d3 c3 dd 62 f4 " 4350a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "20 a7 "; 4360a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker 4370a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongkerchar* signature_11 = 4380a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "be 40 a5 fb 94 f1 13 e1 b3 ef f6 b6 a3 39 86 f2" 4390a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "02 e3 63 f0 74 83 b7 92 e6 8d fa 55 54 df 04 66" 4400a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "cc 32 15 09 50 78 3b 4d 96 8b 63 9a 04 fd 2f b9" 4410a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "7f 6e b9 67 02 1f 5a dc cb 9f ca 95 ac c8 f2 cd" 4420a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "88 5a 38 0b 0a 4e 82 bc 76 07 64 db ab 88 c1 e6" 4430a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "c0 25 5c aa 94 f2 32 19 9d 6f 59 7c c9 14 5b 00" 4440a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "e3 d4 ba 34 6b 55 9a 88 33 ad 15 16 ad 51 63 f0" 4450a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "16 af 6a 59 83 1c 82 ea 13 c8 22 4d 84 d0 76 5a" 4460a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "9d 12 38 4d a4 60 a8 53 1b 4c 40 7e 04 f4 f3 50" 4470a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "70 9e b9 f0 8f 5b 22 0f fb 45 ab f6 b7 5d 15 79" 4480a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "fd 3f 1e b5 5f c7 5b 00 af 8b a3 b0 87 82 7f e9" 4490a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "ae 9f b4 f6 c5 fa 63 03 1f e5 82 85 2f e2 83 4f" 4500a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "9c 89 bf f5 3e 25 52 21 6b c7 c1 d4 a3 d5 dc 2b" 4510a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "a6 95 5c d9 b1 7d 13 63 e7 fe e8 ed 76 29 75 3f" 4520a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "f3 12 5e dd 48 52 1a e3 b9 b0 32 17 f4 49 6d 0d" 4530a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "8e de 57 ac bc 5b d4 de ae 74 a5 6f 86 67 1d e2"; 4540a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker 4550a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker// PKCS#1 v1.5 Signature Example 15.12 4560a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker 4570a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongkerchar* message_12 = 4580a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "7a f4 28 35 91 7a 88 d6 b3 c6 71 6b a2 f5 b0 d5 " 4590a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "b2 0b d4 e2 e6 e5 74 e0 6a f1 ee f7 c8 11 31 be " 4600a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "22 bf 81 28 b9 cb c6 ec 00 27 5b a8 02 94 a5 d1 " 4610a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "17 2d 08 24 a7 9e 8f dd 83 01 83 e4 c0 0b 96 78 " 4620a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "28 67 b1 22 7f ea 24 9a ad 32 ff c5 fe 00 7b c5 " 4630a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "1f 21 79 2f 72 8d ed a8 b5 70 8a a9 9c ab ab 20 " 4640a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "a4 aa 78 3e d8 6f 0f 27 b5 d5 63 f4 2e 07 15 8c " 4650a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "ea 72 d0 97 aa 68 87 ec 41 1d d0 12 91 2a 5e 03 " 4660a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "2b bf a6 78 50 71 44 bc c9 5f 39 b5 8b e7 bf d1 " 4670a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "75 9a db 9a 91 fa 1d 6d 82 26 a8 34 3a 8b 84 9d " 4680a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "ae 76 f7 b9 82 24 d5 9e 28 f7 81 f1 3e ce 60 5f " 4690a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "84 f6 c9 0b ae 5f 8c f3 78 81 6f 40 20 a7 dd a1 " 4700a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "be d9 0c 92 a2 36 34 d2 03 fa c3 fc d8 6d 68 d3 " 4710a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "18 2a 7d 9c ca be 7b 07 95 f5 c6 55 e9 ac c4 e3 " 4720a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "ec 18 51 40 d1 0c ef 05 34 64 ab 17 5c 83 bd 83 " 4730a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "93 5e 3d ab af 34 62 ee be 63 d1 5f 57 3d 26 9a "; 4740a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker 4750a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongkerchar* signature_12 = 4760a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "4e 78 c5 90 2b 80 79 14 d1 2f a5 37 ae 68 71 c8" 4770a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "6d b8 02 1e 55 d1 ad b8 eb 0c cf 1b 8f 36 ab 7d" 4780a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "ad 1f 68 2e 94 7a 62 70 72 f0 3e 62 73 71 78 1d" 4790a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "33 22 1d 17 4a be 46 0d bd 88 56 0c 22 f6 90 11" 4800a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "6e 2f bb e6 e9 64 36 3a 3e 52 83 bb 5d 94 6e f1" 4810a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "c0 04 7e ba 03 8c 75 6c 40 be 79 23 05 58 09 b0" 4820a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "e9 f3 4a 03 a5 88 15 eb dd e7 67 93 1f 01 8f 6f" 4830a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "18 78 f2 ef 4f 47 dd 37 40 51 dd 48 68 5d ed 6e" 4840a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "fb 3e a8 02 1f 44 be 1d 7d 14 93 98 f9 8e a9 c0" 4850a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "8d 62 88 8e bb 56 19 2d 17 74 7b 6b 8e 17 09 54" 4860a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "31 f1 25 a8 a8 e9 96 2a a3 1c 28 52 64 e0 8f b2" 4870a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "1a ac 33 6c e6 c3 8a a3 75 e4 2b c9 2a b0 ab 91" 4880a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "03 84 31 e1 f9 2c 39 d2 af 5d ed 7e 43 bc 15 1e" 4890a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "6e be a4 c3 e2 58 3a f3 43 7e 82 c4 3c 5e 3b 5b" 4900a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "07 cf 03 59 68 3d 22 98 e3 59 48 ed 80 6c 06 3c" 4910a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "60 6e a1 78 15 0b 1e fc 15 85 69 34 c7 25 5c fe"; 4920a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker 4930a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker// PKCS#1 v1.5 Signature Example 15.13 4940a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker 4950a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongkerchar* message_13 = 4960a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "eb ae f3 f9 f2 3b df e5 fa 6b 8a f4 c2 08 c1 89 " 4970a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "f2 25 1b f3 2f 5f 13 7b 9d e4 40 63 78 68 6b 3f " 4980a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "07 21 f6 2d 24 cb 86 88 d6 fc 41 a2 7c ba e2 1d " 4990a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "30 e4 29 fe ac c7 11 19 41 c2 77 "; 5000a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker 5010a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongkerchar* signature_13 = 5020a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "c4 8d be f5 07 11 4f 03 c9 5f af be b4 df 1b fa" 5030a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "88 e0 18 4a 33 cc 4f 8a 9a 10 35 ff 7f 82 2a 5e" 5040a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "38 cd a1 87 23 91 5f f0 78 24 44 29 e0 f6 08 1c" 5050a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "14 fd 83 33 1f a6 5c 6b a7 bb 9a 12 db f6 62 23" 5060a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "74 cd 0c a5 7d e3 77 4e 2b d7 ae 82 36 77 d0 61" 5070a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "d5 3a e9 c4 04 0d 2d a7 ef 70 14 f3 bb dc 95 a3" 5080a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "61 a4 38 55 c8 ce 9b 97 ec ab ce 17 4d 92 62 85" 5090a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "14 2b 53 4a 30 87 f9 f4 ef 74 51 1e c7 42 b0 d5" 5100a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "68 56 03 fa f4 03 b5 07 2b 98 5d f4 6a df 2d 25" 5110a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "29 a0 2d 40 71 1e 21 90 91 70 52 37 1b 79 b7 49" 5120a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "b8 3a bf 0a e2 94 86 c3 f2 f6 24 77 b2 bd 36 2b" 5130a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "03 9c 01 3c 0c 50 76 ef 52 0d bb 40 5f 42 ce e9" 5140a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "54 25 c3 73 a9 75 e1 cd d0 32 c4 96 22 c8 50 79" 5150a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "b0 9e 88 da b2 b1 39 69 ef 7a 72 39 73 78 10 40" 5160a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "45 9f 57 d5 01 36 38 48 3d e2 d9 1c b3 c4 90 da" 5170a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "81 c4 6d e6 cd 76 ea 8a 0c 8f 6f e3 31 71 2d 24"; 5180a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker 5190a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker// PKCS#1 v1.5 Signature Example 15.14 5200a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker 5210a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongkerchar* message_14 = 5220a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "c5 a2 71 12 78 76 1d fc dd 4f 0c 99 e6 f5 61 9d " 5230a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "6c 48 b5 d4 c1 a8 09 82 fa a6 b4 cf 1c f7 a6 0f " 5240a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "f3 27 ab ef 93 c8 01 42 9e fd e0 86 40 85 81 46 " 5250a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "10 56 ac c3 3f 3d 04 f5 ad a2 12 16 ca cd 5f d1 " 5260a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "f9 ed 83 20 3e 0e 2f e6 13 8e 3e ae 84 24 e5 91 " 5270a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "5a 08 3f 3f 7a b7 60 52 c8 be 55 ae 88 2d 6e c1 " 5280a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "48 2b 1e 45 c5 da e9 f4 10 15 40 53 27 02 2e c3 " 5290a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "2f 0e a2 42 97 63 b2 55 04 3b 19 58 ee 3c f6 d6 " 5300a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "39 83 59 6e b3 85 84 4f 85 28 cc 9a 98 65 83 5d " 5310a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "c5 11 3c 02 b8 0d 0f ca 68 aa 25 e7 2b ca ae b3 " 5320a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "cf 9d 79 d8 4f 98 4f d4 17 "; 5330a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker 5340a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongkerchar* signature_14 = 5350a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "6b d5 25 7a a0 66 11 fb 46 60 08 7c b4 bc 4a 9e" 5360a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "44 91 59 d3 16 52 bd 98 08 44 da f3 b1 c7 b3 53" 5370a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "f8 e5 61 42 f7 ea 98 57 43 3b 18 57 3b 4d ee de" 5380a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "81 8a 93 b0 29 02 97 78 3f 1a 2f 23 cb c7 27 97" 5390a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "a6 72 53 7f 01 f6 24 84 cd 41 62 c3 21 4b 9a c6" 5400a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "28 22 4c 5d e0 1f 32 bb 9b 76 b2 73 54 f2 b1 51" 5410a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "d0 e8 c4 21 3e 46 15 ad 0b c7 1f 51 5e 30 0d 6a" 5420a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "64 c6 74 34 11 ff fd e8 e5 ff 19 0e 54 92 30 43" 5430a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "12 6e cf c4 c4 53 90 22 66 8f b6 75 f2 5c 07 e2" 5440a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "00 99 ee 31 5b 98 d6 af ec 4b 1a 9a 93 dc 33 49" 5450a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "6a 15 bd 6f de 16 63 a7 d4 9b 9f 1e 63 9d 38 66" 5460a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "4b 37 a0 10 b1 f3 5e 65 86 82 d9 cd 63 e5 7d e0" 5470a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "f1 5e 8b dd 09 65 58 f0 7e c0 ca a2 18 a8 c0 6f" 5480a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "47 88 45 39 40 28 7c 9d 34 b6 d4 0a 3f 09 bf 77" 5490a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "99 fe 98 ae 4e b4 9f 3f f4 1c 50 40 a5 0c ef c9" 5500a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "bd f2 39 4b 74 9c f1 64 48 0d f1 ab 68 80 27 3b"; 5510a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker 5520a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker// PKCS#1 v1.5 Signature Example 15.15 5530a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker 5540a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongkerchar* message_15 = 5550a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "9b f8 aa 25 3b 87 2e a7 7a 7e 23 47 6b e2 6b 23 " 5560a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "29 57 8c f6 ac 9e a2 80 5b 35 7f 6f c3 ad 13 0d " 5570a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "ba eb 3d 86 9a 13 cc e7 a8 08 bb bb c9 69 85 7e " 5580a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "03 94 5c 7b b6 1d f1 b5 c2 58 9b 8e 04 6c 2a 5d " 5590a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "7e 40 57 b1 a7 4f 24 c7 11 21 63 64 28 85 29 ec " 5600a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "95 70 f2 51 97 21 3b e1 f5 c2 e5 96 f8 bf 8b 2c " 5610a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "f3 cb 38 aa 56 ff e5 e3 1d f7 39 58 20 e9 4e cf " 5620a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "3b 11 89 a9 65 dc f9 a9 cb 42 98 d3 c8 8b 29 23 " 5630a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "c1 9f c6 bc 34 aa ce ca d4 e0 93 1a 7c 4e 5d 73 " 5640a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "dc 86 df a7 98 a8 47 6d 82 46 3e ef aa 90 a8 a9 " 5650a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "19 2a b0 8b 23 08 8d d5 8e 12 80 f7 d7 2e 45 48 " 5660a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "39 6b aa c1 12 25 2d d5 c5 34 6a db 20 04 a2 f7 " 5670a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "10 1c cc 89 9c c7 fa fa e8 bb e2 95 73 88 96 a5 " 5680a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "b2 01 22 85 01 4e f6 "; 5690a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker 5700a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongkerchar* signature_15 = 5710a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "27 f7 f4 da 9b d6 10 10 6e f5 7d 32 38 3a 44 8a" 5720a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "8a 62 45 c8 3d c1 30 9c 6d 77 0d 35 7b a8 9e 73" 5730a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "f2 ad 08 32 06 2e b0 fe 0a c9 15 57 5b cd 6b 8b" 5740a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "ca db 4e 2b a6 fa 9d a7 3a 59 17 51 52 b2 d4 fe" 5750a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "72 b0 70 c9 b7 37 9e 50 00 0e 55 e6 c2 69 f6 65" 5760a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "8c 93 79 72 79 7d 3a dd 69 f1 30 e3 4b 85 bd ec" 5770a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "9f 3a 9b 39 22 02 d6 f3 e4 30 d0 9c ac a8 22 77" 5780a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "59 ab 82 5f 70 12 d2 ff 4b 5b 62 c8 50 4d ba d8" 5790a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "55 c0 5e dd 5c ab 5a 4c cc dc 67 f0 1d d6 51 7c" 5800a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "7d 41 c4 3e 2a 49 57 af f1 9d b6 f1 8b 17 85 9a" 5810a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "f0 bc 84 ab 67 14 6e c1 a4 a6 0a 17 d7 e0 5f 8b" 5820a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "4f 9c ed 6a d1 09 08 d8 d7 8f 7f c8 8b 76 ad c8" 5830a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "29 0f 87 da f2 a7 be 10 ae 40 85 21 39 5d 54 ed" 5840a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "25 56 fb 76 61 85 4a 73 0c e3 d8 2c 71 a8 d4 93" 5850a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "ec 49 a3 78 ac 8a 3c 74 43 9f 7c c5 55 ba 13 f8" 5860a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "59 07 08 90 ee 18 ff 65 8f a4 d7 41 96 9d 70 a5"; 5870a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker 5880a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker// PKCS#1 v1.5 Signature Example 15.16 5890a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker 5900a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongkerchar* message_16 = 5910a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "32 47 48 30 e2 20 37 54 c8 bf 06 81 dc 4f 84 2a " 5920a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "fe 36 09 30 37 86 16 c1 08 e8 33 65 6e 56 40 c8 " 5930a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "68 56 88 5b b0 5d 1e b9 43 8e fe de 67 92 63 de " 5940a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "07 cb 39 55 3f 6a 25 e0 06 b0 a5 23 11 a0 63 ca " 5950a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "08 82 66 d2 56 4f f6 49 0c 46 b5 60 98 18 54 8f " 5960a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "88 76 4d ad 34 a2 5e 3a 85 d5 75 02 3f 0b 9e 66 " 5970a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "50 48 a0 3c 35 05 79 a9 d3 24 46 c7 bb 96 cc 92 " 5980a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "e0 65 ab 94 d3 c8 95 2e 8d f6 8e f0 d9 fa 45 6b " 5990a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "3a 06 bb 80 e3 bb c4 b2 8e 6a 94 b6 d0 ff 76 96 " 6000a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "a6 4e fe 05 e7 35 fe a0 25 d7 bd bc 41 39 f3 a3 " 6010a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "b5 46 07 5c ba 7e fa 94 73 74 d3 f0 ac 80 a6 8d " 6020a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "76 5f 5d f6 21 0b ca 06 9a 2d 88 64 7a f7 ea 04 " 6030a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "2d ac 69 0c b5 73 78 ec 07 77 61 4f b8 b6 5f f4 " 6040a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "53 ca 6b 7d ce 60 98 45 1a 2f 8c 0d a9 bf ec f1 " 6050a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "fd f3 91 bb aa 4e 2a 91 ca 18 a1 12 1a 75 23 a2 " 6060a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "ab d4 25 14 f4 89 e8 "; 6070a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker 6080a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongkerchar* signature_16 = 6090a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "69 17 43 72 57 c2 2c cb 54 03 29 0c 3d ee 82 d9" 6100a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "cf 75 50 b3 1b d3 1c 51 bd 57 bf d3 5d 45 2a b4" 6110a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "db 7c 4b e6 b2 e2 5a c9 a5 9a 1d 2a 7f eb 62 7f" 6120a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "0a fd 49 76 b3 00 3c c9 cf fd 88 96 50 5e c3 82" 6130a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "f2 65 10 4d 4c f8 c9 32 fa 9f e8 6e 00 87 07 95" 6140a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "99 12 38 9d a4 b2 d6 b3 69 b3 6a 5e 72 e2 9d 24" 6150a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "c9 a9 8c 9d 31 a3 ab 44 e6 43 e6 94 12 66 a4 7a" 6160a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "45 e3 44 6c e8 77 6a be 24 1a 8f 5f c6 42 3b 24" 6170a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "b1 ff 25 0d c2 c3 a8 17 23 53 56 10 77 e8 50 a7" 6180a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "69 b2 5f 03 25 da c8 89 65 a3 b9 b4 72 c4 94 e9" 6190a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "5f 71 9b 4e ac 33 2c aa 7a 65 c7 df e4 6d 9a a7" 6200a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "e6 e0 0f 52 5f 30 3d d6 3a b7 91 92 18 90 18 68" 6210a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "f9 33 7f 8c d2 6a af e6 f3 3b 7f b2 c9 88 10 af" 6220a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "19 f7 fc b2 82 ba 15 77 91 2c 1d 36 89 75 fd 5d" 6230a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "44 0b 86 e1 0c 19 97 15 fa 0b 6f 42 50 b5 33 73" 6240a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "2d 0b ef e1 54 51 50 fc 47 b8 76 de 09 b0 0a 94"; 6250a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker 6260a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker// PKCS#1 v1.5 Signature Example 15.17 6270a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker 6280a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongkerchar* message_17 = 6290a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "00 8e 59 50 5e af b5 50 aa e5 e8 45 58 4c eb b0 " 6300a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "0b 6d e1 73 3e 9f 95 d4 2c 88 2a 5b be b5 ce 1c " 6310a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "57 e1 19 e7 c0 d4 da ca 9f 1f f7 87 02 17 f7 cf " 6320a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "d8 a6 b3 73 97 7c ac 9c ab 8e 71 e4 20 "; 6330a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker 6340a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongkerchar* signature_17 = 6350a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "92 25 03 b6 73 ee 5f 3e 69 1e 1c a8 5e 9f f4 17" 6360a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "3c f7 2b 05 ac 2c 13 1d a5 60 35 93 e3 bc 25 9c" 6370a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "94 c1 f7 d3 a0 6a 5b 98 91 bf 11 3f a3 9e 59 ff" 6380a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "7c 1e d6 46 5e 90 80 49 cb 89 e4 e1 25 cd 37 d2" 6390a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "ff d9 22 7a 41 b4 a0 a1 9c 0a 44 fb bf 3d e5 5b" 6400a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "ab 80 20 87 a3 bb 8d 4f f6 68 ee 6b bb 8a d8 9e" 6410a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "68 57 a7 9a 9c 72 78 19 90 df cf 92 cd 51 94 04" 6420a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "c9 50 f1 3d 11 43 c3 18 4f 1d 25 0c 90 e1 7a c6" 6430a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "ce 36 16 3b 98 95 62 7a d6 ff ec 14 22 44 1f 55" 6440a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "e4 49 9d ba 9b e8 95 46 ae 8b c6 3c ca 01 dd 08" 6450a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "46 3a e7 f1 fc e3 d8 93 99 69 38 77 8c 18 12 e6" 6460a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "74 ad 9c 30 9c 5a cc a3 fd e4 4e 7d d8 69 59 93" 6470a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "e9 c1 fa 87 ac da 99 ec e5 c8 49 9e 46 89 57 ad" 6480a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "66 35 9b f1 2a 51 ad be 78 d3 a2 13 b4 49 bf 0b" 6490a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "5f 8d 4d 49 6a cf 03 d3 03 3b 7c cd 19 6b c2 2f" 6500a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "68 fb 7b ef 4f 69 7c 5e a2 b3 50 62 f4 8a 36 dd"; 6510a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker 6520a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker// PKCS#1 v1.5 Signature Example 15.18 6530a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker 6540a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongkerchar* message_18 = 6550a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "6a bc 54 cf 8d 1d ff 1f 53 b1 7d 81 60 36 88 78 " 6560a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "a8 78 8c c6 d2 2f a5 c2 25 8c 88 e6 60 b0 9a 89 " 6570a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "33 f9 f2 c0 50 4d da dc 21 f6 e7 5e 0b 83 3b eb " 6580a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "55 52 29 de e6 56 b9 04 7b 92 f6 2e 76 b8 ff cc " 6590a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "60 da b0 6b 80 "; 6600a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker 6610a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongkerchar* signature_18 = 6620a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "0b 6d af 42 f7 a8 62 14 7e 41 74 93 c2 c4 01 ef" 6630a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "ae 32 63 6a b4 cb d4 41 92 bb f5 f1 95 b5 0a e0" 6640a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "96 a4 75 a1 61 4f 0a 9f a8 f7 a0 26 cb 46 c6 50" 6650a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "6e 51 8e 33 d8 3e 56 47 7a 87 5a ca 8c 7e 71 4c" 6660a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "e1 bd bd 61 ef 5d 53 52 39 b3 3f 2b fd d6 17 71" 6670a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "ba b6 27 76 d7 81 71 a1 42 3c ea 87 31 f8 2e 60" 6680a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "76 6d 64 54 26 56 20 b1 5f 5c 5a 58 4f 55 f9 5b" 6690a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "80 2f e7 8c 57 4e d5 da cf c8 31 f3 cf 2b 05 02" 6700a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "c0 b2 98 f2 5c cf 11 f9 73 b3 1f 85 e4 74 42 19" 6710a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "85 f3 cf f7 02 df 39 46 ef 0a 66 05 68 21 11 b2" 6720a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "f5 5b 1f 8a b0 d2 ea 3a 68 3c 69 98 5e ad 93 ed" 6730a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "44 9e a4 8f 03 58 dd f7 08 02 cb 41 de 2f d8 3f" 6740a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "3c 80 80 82 d8 49 36 94 8e 0c 84 a1 31 b4 92 78" 6750a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "27 46 05 27 bb 5c d2 4b fa b7 b4 8e 07 1b 24 17" 6760a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "19 30 f9 97 63 27 2f 97 97 bc b7 6f 1d 24 81 57" 6770a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "55 58 fc f2 60 b1 f0 e5 54 eb b3 df 3c fc b9 58"; 6780a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker 6790a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker// PKCS#1 v1.5 Signature Example 15.19 6800a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker 6810a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongkerchar* message_19 = 6820a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "af 2d 78 15 2c f1 0e fe 01 d2 74 f2 17 b1 77 f6 " 6830a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "b0 1b 5e 74 9f 15 67 71 5d a3 24 85 9c d3 dd 88 " 6840a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "db 84 8e c7 9f 48 db ba 7b 6f 1d 33 11 1e f3 1b " 6850a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "64 89 9e 73 91 c2 bf fd 69 f4 90 25 cf 20 1f c5 " 6860a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "85 db d1 54 2c 1c 77 8a 2c e7 a7 ee 10 8a 30 9f " 6870a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "ec a2 6d 13 3a 5f fe dc 4e 86 9d cd 76 56 59 6a " 6880a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "c8 42 7e a3 ef 6e 3f d7 8f e9 9d 8d dc 71 d8 39 " 6890a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "f6 78 6e 0d a6 e7 86 bd 62 b3 a4 f1 9b 89 1a 56 " 6900a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "15 7a 55 4e c2 a2 b3 9e 25 a1 d7 c7 d3 73 21 c7 " 6910a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "a1 d9 46 cf 4f be 75 8d 92 76 f0 85 63 44 9d 67 " 6920a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "41 4a 2c 03 0f 42 51 cf e2 21 3d 04 a5 41 06 37 " 6930a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "87 "; 6940a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker 6950a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongkerchar* signature_19 = 6960a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "20 9c 61 15 78 57 38 7b 71 e2 4b f3 dd 56 41 45" 6970a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "50 50 3b ec 18 0f f5 3b dd 9b ac 06 2a 2d 49 95" 6980a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "09 bf 99 12 81 b7 95 27 df 91 36 61 5b 7a 6d 9d" 6990a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "b3 a1 03 b5 35 e0 20 2a 2c ac a1 97 a7 b7 4e 53" 7000a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "56 f3 dd 59 5b 49 ac fd 9d 30 04 9a 98 ca 88 f6" 7010a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "25 bc a1 d5 f2 2a 39 2d 8a 74 9e fb 6e ed 9b 78" 7020a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "21 d3 11 0a c0 d2 44 19 9e cb 4a a3 d7 35 a8 3a" 7030a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "2e 88 93 c6 bf 85 81 38 3c ca ee 83 46 35 b7 fa" 7040a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "1f af fa 45 b1 3d 15 c1 da 33 af 71 e8 93 03 d6" 7050a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "80 90 ff 62 ee 61 5f df 5a 84 d1 20 71 1d a5 3c" 7060a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "28 89 19 8a b3 83 17 a9 73 4a b2 7d 67 92 4c ea" 7070a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "74 15 6f f9 9b ef 98 76 bb 5c 33 9e 93 74 52 83" 7080a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "e1 b3 4e 07 22 26 b8 80 45 e0 17 e9 f0 5b 2a 8c" 7090a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "41 67 40 25 8e 22 3b 26 90 02 74 91 73 22 73 f3" 7100a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "22 9d 9e f2 b1 b3 80 7e 32 10 18 92 0a d3 e5 3d" 7110a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "ae 47 e6 d9 39 5c 18 4b 93 a3 74 c6 71 fa a2 ce"; 7120a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker 7130a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker// PKCS#1 v1.5 Signature Example 15.20 7140a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker 7150a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongkerchar* message_20 = 7160a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "40 ee 99 24 58 d6 f6 14 86 d2 56 76 a9 6d d2 cb " 7170a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "93 a3 7f 04 b1 78 48 2f 2b 18 6c f8 82 15 27 0d " 7180a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "ba 29 d7 86 d7 74 b0 c5 e7 8c 7f 6e 56 a9 56 e7 " 7190a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "f7 39 50 a2 b0 c0 c1 0a 08 db cd 67 e5 b2 10 bb " 7200a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "21 c5 8e 27 67 d4 4f 7d d4 01 4e 39 66 14 3b f7 " 7210a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "e3 d6 6f f0 c0 9b e4 c5 5f 93 b3 99 94 b8 51 8d " 7220a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "9c 1d 76 d5 b4 73 74 de a0 8f 15 7d 57 d7 06 34 " 7230a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "97 8f 38 56 e0 e5 b4 81 af bb db 5a 3a c4 8d 48 " 7240a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "4b e9 2c 93 de 22 91 78 35 4c 2d e5 26 e9 c6 5a " 7250a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "31 ed e1 ef 68 cb 63 98 d7 91 16 84 fe c0 ba bc " 7260a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "3a 78 1a 66 66 07 83 50 69 74 d0 e1 48 25 10 1c " 7270a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "3b fa ea "; 7280a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker 7290a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongkerchar* signature_20 = 7300a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "92 75 02 b8 24 af c4 25 13 ca 65 70 de 33 8b 8a" 7310a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "64 c3 a8 5e b8 28 d3 19 36 24 f2 7e 8b 10 29 c5" 7320a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "5c 11 9c 97 33 b1 8f 58 49 b3 50 09 18 bc c0 05" 7330a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "51 d9 a8 fd f5 3a 97 74 9f a8 dc 48 0d 6f e9 74" 7340a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "2a 58 71 f9 73 92 65 28 97 2a 1a f4 9e 39 25 b0" 7350a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "ad f1 4a 84 27 19 b4 a5 a2 d8 9f a9 c0 b6 60 5d" 7360a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "21 2b ed 1e 67 23 b9 34 06 ad 30 e8 68 29 a5 c7" 7370a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "19 b8 90 b3 89 30 6d c5 50 64 86 ee 2f 36 a8 df" 7380a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "e0 a9 6a f6 78 c9 cb d6 af f3 97 ca 20 0e 3e dc" 7390a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "1e 36 bd 2f 08 b3 1d 54 0c 0c b2 82 a9 55 9e 4a" 7400a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "dd 4f c9 e6 49 2e ed 0c cb d3 a6 98 2e 5f aa 2d" 7410a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "dd 17 be 47 41 7c 80 b4 e5 45 2d 31 f7 24 01 a0" 7420a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "42 32 51 09 54 4d 95 4c 01 93 90 79 d4 09 a5 c3" 7430a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "78 d7 51 2d fc 2d 2a 71 ef cc 34 32 a7 65 d1 c6" 7440a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "a5 2c fc e8 99 cd 79 b1 5b 4f c3 72 36 41 ef 6b" 7450a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker "d0 0a cc 10 40 7e 5d f5 8d d1 c3 c5 c5 59 a5 06"; 7460a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker 7470a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker 7480a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongkerunsigned char* parsehex(char* str, int* len) { 7490a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker // result can't be longer than input 7500a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker unsigned char* result = malloc(strlen(str)); 7510a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker 7520a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker unsigned char* p = result; 7530a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker *len = 0; 7540a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker 7550a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker while (*str) { 7560a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker int b; 7570a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker 7580a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker while (isspace(*str)) str++; 7590a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker 7600a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker switch (*str) { 7610a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker case '0': case '1': case '2': case '3': case '4': 7620a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker case '5': case '6': case '7': case '8': case '9': 7630a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker b = (*str - '0') << 4; break; 7640a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker case 'a': case 'b': case 'c': case 'd': case 'e': case 'f': 7650a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker b = (*str - 'a' + 10) << 4; break; 7660a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker case 'A': case 'B': case 'C': case 'D': case 'E': case 'F': 7670a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker b = (*str - 'A' + 10) << 4; break; 7680a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker case '\0': 7690a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker return result; 7700a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker default: 7710a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker return NULL; 7720a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker } 7730a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker str++; 7740a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker 7750a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker while (isspace(*str)) str++; 7760a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker 7770a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker switch (*str) { 7780a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker case '0': case '1': case '2': case '3': case '4': 7790a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker case '5': case '6': case '7': case '8': case '9': 7800a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker b |= *str - '0'; break; 7810a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker case 'a': case 'b': case 'c': case 'd': case 'e': case 'f': 7820a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker b |= *str - 'a' + 10; break; 7830a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker case 'A': case 'B': case 'C': case 'D': case 'E': case 'F': 7840a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker b |= *str - 'A' + 10; break; 7850a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker default: 7860a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker return NULL; 7870a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker } 7880a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker str++; 7890a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker 7900a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker *p++ = b; 7910a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker ++*len; 7920a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker } 7930a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker 7940a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker return result; 7950a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker} 7960a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker 7970a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker 798f03f8485e7d1a5258e16e0e376229f431d2c53acMark Salyzynint main(int arg __unused, char** argv __unused) { 7990a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker 8000a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker unsigned char hash[SHA_DIGEST_SIZE]; 8010a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker 8020a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker unsigned char* message; 8030a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker int mlen; 8040a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker unsigned char* signature; 8050a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker int slen; 8060a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker 8070a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker#define TEST_MESSAGE(n) do {\ 8080a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker message = parsehex(message_##n, &mlen); \ 8090a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker SHA_hash(message, mlen, hash); \ 8100a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker signature = parsehex(signature_##n, &slen); \ 8110a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker int result = RSA_verify(&key_15, signature, slen, hash, sizeof(hash)); \ 8120a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker printf("message %d: %s\n", n, result ? "verified" : "not verified"); \ 8130a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker success = success && result; \ 8140a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker } while(0) 8150a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker 8160a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker int success = 1; 8170a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker 8180a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker TEST_MESSAGE(1); 8190a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker TEST_MESSAGE(2); 8200a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker TEST_MESSAGE(3); 8210a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker TEST_MESSAGE(4); 8220a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker TEST_MESSAGE(5); 8230a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker TEST_MESSAGE(6); 8240a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker TEST_MESSAGE(7); 8250a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker TEST_MESSAGE(8); 8260a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker TEST_MESSAGE(9); 8270a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker TEST_MESSAGE(10); 8280a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker TEST_MESSAGE(11); 8290a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker TEST_MESSAGE(12); 8300a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker TEST_MESSAGE(13); 8310a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker TEST_MESSAGE(14); 8320a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker TEST_MESSAGE(15); 8330a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker TEST_MESSAGE(16); 8340a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker TEST_MESSAGE(17); 8350a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker TEST_MESSAGE(18); 8360a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker TEST_MESSAGE(19); 8370a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker TEST_MESSAGE(20); 8380a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker 8390a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker printf("\n%s\n\n", success ? "PASS" : "FAIL"); 8400a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker 8410a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker return !success; 8420a862dcd637d3ed82861d39bb48a55ed10a796a6Doug Zongker} 843