70
69
ret = gnutls_x509_crq_init (&crq);
72
fail ("gnutls_x509_crq_init: %d\n", ret);
71
fail ("gnutls_x509_crq_init: %d\n", ret);
74
73
ret = gnutls_x509_privkey_init (&pkey);
77
fail ("gnutls_x509_privkey_init: %d\n", ret);
76
fail ("gnutls_x509_privkey_init: %d\n", ret);
79
ret = gnutls_privkey_init (&abs_pkey);
82
fail ("gnutls_privkey_init: %d\n", ret);
80
85
ret = gnutls_x509_privkey_generate (pkey, algorithm, 1024, 0);
83
fail ("gnutls_x509_privkey_generate (rsa): %d\n", ret);
88
fail ("gnutls_x509_privkey_generate (rsa): %d\n", ret);
87
success ("Key[%s] generation ok: %d\n",
88
gnutls_pk_algorithm_get_name (algorithm), ret);
92
success ("Key[%s] generation ok: %d\n",
93
gnutls_pk_algorithm_get_name (algorithm), ret);
91
96
pkey_key_id_len = 0;
92
97
ret = gnutls_x509_privkey_get_key_id (pkey, 0, pkey_key_id,
94
99
if (ret != GNUTLS_E_SHORT_MEMORY_BUFFER)
96
fail ("gnutls_x509_privkey_get_key_id incorrectly returns %d\n",
101
fail ("gnutls_x509_privkey_get_key_id incorrectly returns %d\n",
100
105
pkey_key_id = malloc (sizeof (unsigned char) * pkey_key_id_len);
101
106
ret = gnutls_x509_privkey_get_key_id (pkey, 0, pkey_key_id,
103
108
if (ret != GNUTLS_E_SUCCESS)
105
fail ("gnutls_x509_privkey_get_key_id incorrectly returns %d\n",
110
fail ("gnutls_x509_privkey_get_key_id incorrectly returns %d\n",
109
114
ret = gnutls_x509_crq_set_version (crq, 1);
112
fail ("gnutls_x509_crq_set_version: %d\n", ret);
117
fail ("gnutls_x509_crq_set_version: %d\n", ret);
115
120
ret = gnutls_x509_crq_set_key (crq, pkey);
118
fail ("gnutls_x509_crq_set_key: %d\n", ret);
123
fail ("gnutls_x509_crq_set_key: %d\n", ret);
121
126
ret = gnutls_x509_crq_set_dn_by_oid (crq, GNUTLS_OID_X520_COMMON_NAME,
125
fail ("gnutls_x509_crq_set_dn_by_oid: %d\n", ret);
128
ret = gnutls_x509_crq_sign (crq, pkey);
131
fail ("gnutls_x509_crq_sign: %d\n", ret);
130
fail ("gnutls_x509_crq_set_dn_by_oid: %d\n", ret);
133
ret = gnutls_privkey_import_x509( abs_pkey, pkey, 0);
136
fail ("gnutls_privkey_import_x509: %d\n", ret);
139
ret = gnutls_x509_crq_privkey_sign (crq, abs_pkey, GNUTLS_DIG_SHA1, 0);
142
fail ("gnutls_x509_crq_sign: %d\n", ret);
145
ret = gnutls_x509_crq_verify (crq, 0);
148
fail ("gnutls_x509_crq_verify: %d\n", ret);
134
151
crq_key_id_len = 0;
135
152
ret = gnutls_x509_crq_get_key_id (crq, 0, crq_key_id, &crq_key_id_len);
136
153
if (ret != GNUTLS_E_SHORT_MEMORY_BUFFER)
138
fail ("gnutls_x509_crq_get_key_id incorrectly returns %d\n", ret);
155
fail ("gnutls_x509_crq_get_key_id incorrectly returns %d\n", ret);
141
158
crq_key_id = malloc (sizeof (unsigned char) * crq_key_id_len);
142
159
ret = gnutls_x509_crq_get_key_id (crq, 0, crq_key_id, &crq_key_id_len);
143
160
if (ret != GNUTLS_E_SUCCESS)
145
fail ("gnutls_x509_crq_get_key_id incorrectly returns %d\n", ret);
162
fail ("gnutls_x509_crq_get_key_id incorrectly returns %d\n", ret);
148
165
if (crq_key_id_len == pkey_key_id_len)
150
ret = memcmp (crq_key_id, pkey_key_id, crq_key_id_len);
154
success ("Key ids are identical. OK.\n");
158
fail ("Key ids differ incorrectly: %d\n", ret);
167
ret = memcmp (crq_key_id, pkey_key_id, crq_key_id_len);
171
success ("Key ids are identical. OK.\n");
175
fail ("Key ids differ incorrectly: %d\n", ret);
163
fail ("Key_id lengths differ incorrectly: %d - %d\n",
164
(int) crq_key_id_len, (int) pkey_key_id_len);
180
fail ("Key_id lengths differ incorrectly: %d - %d\n",
181
(int) crq_key_id_len, (int) pkey_key_id_len);
180
197
gnutls_x509_crq_deinit (crq);
181
198
gnutls_x509_privkey_deinit (pkey);
199
gnutls_privkey_deinit (abs_pkey);
184
202
gnutls_global_deinit ();