~ubuntu-branches/ubuntu/raring/libgcrypt11/raring

« back to all changes in this revision

Viewing changes to tests/keygrip.c

  • Committer: Bazaar Package Importer
  • Author(s): Bhavani Shankar
  • Date: 2009-05-16 20:13:32 UTC
  • mfrom: (1.1.6 upstream) (2.1.3 squeeze)
  • Revision ID: james.westby@ubuntu.com-20090516201332-czkobpu32w318i16
Tags: 1.4.4-2ubuntu1
* Merge from Debian unstable (LP: #364535), remaining changes:
  - Add libgcrypt11-udeb for use by cryptsetup-udeb.
  - Add clean-la.mk, and add a symlink for the .la
  - Install to /lib.

Show diffs side-by-side

added added

removed removed

Lines of Context:
45
45
  exit (1);
46
46
}
47
47
 
 
48
static void
 
49
print_hex (const char *text, const void *buf, size_t n)
 
50
{
 
51
  const unsigned char *p = buf;
 
52
 
 
53
  fputs (text, stdout);
 
54
  for (; n; n--, p++)
 
55
    printf ("%02X", *p);
 
56
  putchar ('\n');
 
57
}
 
58
 
 
59
 
48
60
 
49
61
 
50
62
static struct
51
63
{
 
64
  int algo;
52
65
  const char *key;
53
66
  const unsigned char grip[20];
54
67
} key_grips[] =
55
68
  {
56
69
    {
 
70
      GCRY_PK_RSA,
57
71
      "(private-key"
58
72
      " (rsa"
59
73
      "  (n #00B6B509596A9ECABC939212F891E656A626BA07DA8521A9CAD4C08E640C04052FBB87F424EF1A0275A48A9299AC9DB69ABE3D0124E6C756B1F7DFB9B842D6251AEA6EE85390495CADA73D671537FCE5850A932F32BAB60AB1AC1F852C1F83C625E7A7D70CDA9EF16D5C8E47739D77DF59261ABE8454807FF441E143FBD37F8545#)"
65
79
      "\x32\xCF\xFA\x85\xB1\x79\x1F\xBB\x26\x14\xE9\x1A\xFD\xF3\xAF\xE3\x32\x08\x2E\x25"
66
80
    },
67
81
    {
 
82
      GCRY_PK_DSA,
68
83
      " (public-key"
69
84
      " (dsa"
70
85
      "  (p #0084E4C626E16005770BD9509ABF7354492E85B8C0060EFAAAEC617F725B592FAA59DF5460575F41022776A9718CE62EDD542AB73C7720869EBDBC834D174ADCD7136827DF51E2613545A25CA573BC502A61B809000B6E35F5EB7FD6F18C35678C23EA1C3638FB9CFDBA2800EE1B62F41A4479DE824F2834666FBF8DC5B53C2617#)"
75
90
      
76
91
    },
77
92
    {
 
93
      GCRY_PK_DSA,
78
94
      "(private-key"
79
95
      " (dsa"
80
96
      "  (p #0084E4C626E16005770BD9509ABF7354492E85B8C0060EFAAAEC617F725B592FAA59DF5460575F41022776A9718CE62EDD542AB73C7720869EBDBC834D174ADCD7136827DF51E2613545A25CA573BC502A61B809000B6E35F5EB7FD6F18C35678C23EA1C3638FB9CFDBA2800EE1B62F41A4479DE824F2834666FBF8DC5B53C2617#)"
83
99
      "  (y #3D5DD14AFA2BF24A791E285B90232213D0E3BA74AB1109E768AED19639A322F84BB7D959E2BA92EF73DE4C7F381AA9F4053CFA3CD4527EF9043E304E5B95ED0A3A5A9D590AA641C13DB2B6E32B9B964A6A2C730DD3EA7C8E13F7A140AFF1A91CE375E9B9B960384779DC4EA180FA1F827C52288F366C0770A220F50D6D8FD6F6#)"
84
100
      "  (x #0087F9E91BFBCC1163DE71ED86D557708E32F8ADDE#)))",
85
101
      "\x04\xA3\x4F\xA0\x2B\x03\x94\xD7\x32\xAD\xD5\x9B\x50\xAF\xDB\x5D\x57\x22\xA6\x10"
 
102
    },
 
103
    {   
 
104
      GCRY_PK_ECDSA,
 
105
      "(public-key"
 
106
      " (ecdsa"
 
107
      " (p #00FFFFFFFF00000001000000000000000000000000FFFFFFFFFFFFFFFFFFFFFFFF#)"
 
108
      " (a #00FFFFFFFF00000001000000000000000000000000FFFFFFFFFFFFFFFFFFFFFFFC#)"
 
109
      " (b #5AC635D8AA3A93E7B3EBBD55769886BC651D06B0CC53B0F63BCE3C3E27D2604B#)"
 
110
      " (g #046B17D1F2E12C4247F8BCE6E563A440F277037D812DEB33A0F4A13945D898C2964FE342E2FE1A7F9B8EE7EB4A7C0F9E162BCE33576B315ECECBB6406837BF51F5#)"
 
111
      " (n #00FFFFFFFF00000000FFFFFFFFFFFFFFFFBCE6FAADA7179E84F3B9CAC2FC632551#)"
 
112
      " (q #04C8A4CEC2E9A9BC8E173531A67B0840DF345C32E261ADD780E6D83D56EFADFD5DE872F8B854819B59543CE0B7F822330464FBC4E6324DADDCD9D059554F63B344#)))",
 
113
      "\xE6\xDF\x94\x2D\xBD\x8C\x77\x05\xA3\xDD\x41\x6E\xFC\x04\x01\xDB\x31\x0E\x99\xB6"
 
114
    },
 
115
    {   
 
116
      GCRY_PK_ECDSA,
 
117
      "(public-key"
 
118
      " (ecdsa"
 
119
      " (p #00FFFFFFFF00000001000000000000000000000000FFFFFFFFFFFFFFFFFFFFFFFF#)"
 
120
      " (curve \"NIST P-256\")"
 
121
      " (b #5AC635D8AA3A93E7B3EBBD55769886BC651D06B0CC53B0F63BCE3C3E27D2604B#)"
 
122
      " (g #046B17D1F2E12C4247F8BCE6E563A440F277037D812DEB33A0F4A13945D898C2964FE342E2FE1A7F9B8EE7EB4A7C0F9E162BCE33576B315ECECBB6406837BF51F5#)"
 
123
      " (n #00FFFFFFFF00000000FFFFFFFFFFFFFFFFBCE6FAADA7179E84F3B9CAC2FC632551#)"
 
124
      " (q #04C8A4CEC2E9A9BC8E173531A67B0840DF345C32E261ADD780E6D83D56EFADFD5DE872F8B854819B59543CE0B7F822330464FBC4E6324DADDCD9D059554F63B344#)))",
 
125
      "\xE6\xDF\x94\x2D\xBD\x8C\x77\x05\xA3\xDD\x41\x6E\xFC\x04\x01\xDB\x31\x0E\x99\xB6"
 
126
    },
 
127
    {   
 
128
      GCRY_PK_ECDSA,
 
129
      "(public-key"
 
130
      " (ecdsa"
 
131
      " (curve secp256r1)"
 
132
      " (q #04C8A4CEC2E9A9BC8E173531A67B0840DF345C32E261ADD780E6D83D56EFADFD5DE872F8B854819B59543CE0B7F822330464FBC4E6324DADDCD9D059554F63B344#)))",
 
133
      "\xE6\xDF\x94\x2D\xBD\x8C\x77\x05\xA3\xDD\x41\x6E\xFC\x04\x01\xDB\x31\x0E\x99\xB6"
86
134
    }
 
135
 
87
136
  };
88
137
 
89
138
static void
97
146
 
98
147
  for (i = 0; i < (sizeof (key_grips) / sizeof (*key_grips)); i++)
99
148
    {
 
149
      if (gcry_pk_test_algo (key_grips[i].algo))
 
150
        {
 
151
          if (verbose)
 
152
            fprintf (stderr, "algo %d not available; test skipped\n", 
 
153
                     key_grips[i].algo);
 
154
          continue;
 
155
        }
100
156
      err = gcry_sexp_sscan (&sexp, NULL, key_grips[i].key,
101
157
                             strlen (key_grips[i].key));
102
 
      assert (! err);
 
158
      if (err)
 
159
        die ("scanning data %d failed: %s\n", i, gpg_strerror (err));
103
160
      ret = gcry_pk_get_keygrip (sexp, buf);
104
 
      assert (ret);
105
 
      assert (! memcmp (key_grips[i].grip, buf, sizeof (buf)));
 
161
      if (!ret)
 
162
        die ("gcry_pk_get_keygrip failed for %d\n", i);
 
163
        
 
164
      if ( memcmp (key_grips[i].grip, buf, sizeof (buf)) )
 
165
        {
 
166
          print_hex ("keygrip: ", buf, sizeof buf);
 
167
          die ("keygrip for %d does not match\n", i); 
 
168
        }
 
169
 
106
170
      gcry_sexp_release (sexp);
107
171
    }
108
172
}