]> andersk Git - openssh.git/commitdiff
- (djm) Bug #591: use PKCS#15 private key label as a comment in case
authordjm <djm>
Sat, 28 Jun 2003 08:02:47 +0000 (08:02 +0000)
committerdjm <djm>
Sat, 28 Jun 2003 08:02:47 +0000 (08:02 +0000)
   of OpenSC. Report and patch from larsch@trustcenter.de

ChangeLog
scard-opensc.c

index 0405aca169ad599275d6a10ee0c8d94b55301223..f4a76982963fe14b4d2f2e9bd957ef911dd9dfe2 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,7 @@
+20030628
+ - (djm) Bug #591: use PKCS#15 private key label as a comment in case 
+   of OpenSC. Report and patch from larsch@trustcenter.de
+
 20030628
  - (dtucker) OpenBSD CVS Sync
    - markus@cvs.openbsd.org 2003/06/23 09:02:44
index 9766d46ccaa44364c97736ebbdb72a9f083ca413..e8e12dd854f6694d4f647f58be0afd9ca6edadf5 100644 (file)
@@ -474,4 +474,30 @@ sc_put_key(Key *prv, const char *id)
        return -1;
 }
 
+char *
+sc_get_key_label(Key *key)
+{
+       int r;
+       const struct sc_priv_data *priv;
+       struct sc_pkcs15_object *key_obj;
+
+       priv = (const struct sc_priv_data *) RSA_get_app_data(key->rsa);
+       if (priv == NULL || p15card == NULL) {
+               logit("SmartCard key not loaded");
+               /* internal error => return default label */
+               return xstrdup("smartcard key");
+       }
+       r = sc_pkcs15_find_prkey_by_id(p15card, &priv->cert_id, &key_obj);
+       if (r) {
+               logit("Unable to find private key from SmartCard: %s",
+                     sc_strerror(r));
+               return xstrdup("smartcard key");
+       }
+       if (key_obj == NULL || key_obj->label == NULL)
+               /* the optional PKCS#15 label does not exists
+                * => return the default label */
+               return xstrdup("smartcard key");
+       return xstrdup(key_obj->label);
+}
+
 #endif /* SMARTCARD */
This page took 0.263102 seconds and 5 git commands to generate.