added hasher_signature_algorithm_to_oid() function
authorAndreas Steffen <andreas.steffen@strongswan.org>
Fri, 12 Oct 2007 23:18:42 +0000 (23:18 -0000)
committerAndreas Steffen <andreas.steffen@strongswan.org>
Fri, 12 Oct 2007 23:18:42 +0000 (23:18 -0000)
src/libstrongswan/crypto/hashers/hasher.c
src/libstrongswan/crypto/hashers/hasher.h

index f386a3f..fa91ec2 100644 (file)
@@ -19,6 +19,8 @@
  * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
  * or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
  * for more details.
+ *
+ * RCSID $Id$
  */
 
 
@@ -104,3 +106,37 @@ hash_algorithm_t hasher_algorithm_from_oid(int oid)
        }
        return algorithm;
 }
+
+/*
+ * Described in header.
+ */
+int hasher_signature_algorithm_to_oid(hash_algorithm_t alg)
+{
+       int oid;
+
+       switch (alg)
+       {
+               case HASH_MD2:
+                       oid = OID_MD2_WITH_RSA;
+                       break;
+               case HASH_MD5:
+                       oid = OID_MD5_WITH_RSA;
+                       break;
+               case HASH_SHA1:
+                       oid = OID_SHA1_WITH_RSA;
+                       break;
+               case HASH_SHA256:
+                       oid = OID_SHA256_WITH_RSA;
+                       break;
+               case HASH_SHA384:
+                       oid = OID_SHA384_WITH_RSA;
+                       break;
+               case HASH_SHA512:
+                       oid = OID_SHA512_WITH_RSA;
+                       break;
+               default:
+                       oid = OID_UNKNOWN;
+       }
+       return oid;
+}
+
index 4adc22a..66660a1 100644 (file)
@@ -19,6 +19,8 @@
  * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
  * or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
  * for more details.
+ *
+ * RCSID $Id$
  */
 
 #ifndef HASHER_H_
@@ -168,4 +170,16 @@ hasher_t *hasher_create(hash_algorithm_t hash_algorithm);
  */
 hash_algorithm_t hasher_algorithm_from_oid(int oid);
 
+/**
+ * @brief Conversion of hash signature algorithm ASN.1 OID.
+ * 
+ * @param alg                          hash algorithm
+ * @return
+ *                                                     - ASN.1 OID if known hash algorithm
+ *                                                     - OID_UNKNOW
+ * 
+ * @ingroup hashers
+ */
+int hasher_signature_algorithm_to_oid(hash_algorithm_t alg);
+
 #endif /* HASHER_H_ */