+++ /dev/null
-diff -rduNp linux-2.6.21.5.openswan28/net/ipsec/ipsec_alg_cryptoapi.c linux-2.6.21.5/net/ipsec/ipsec_alg_cryptoapi.c
---- linux-2.6.21.5.openswan28/net/ipsec/ipsec_alg_cryptoapi.c 2007-06-21 10:44:07.000000000 +0200
-+++ linux-2.6.21.5/net/ipsec/ipsec_alg_cryptoapi.c 2007-06-21 23:34:05.000000000 +0200
-@@ -197,7 +197,7 @@ static struct ipsec_alg_capi_cipher alg_
- */
- int setup_cipher(const char *ciphername)
- {
-- return crypto_alg_available(ciphername, 0);
-+ return crypto_has_alg(ciphername, 0, CRYPTO_ALG_ASYNC);
- }
-
- /*
-@@ -272,7 +272,7 @@ static __u8 *
- _capi_new_key (struct ipsec_alg_enc *alg, const __u8 *key, size_t keylen)
- {
- struct ipsec_alg_capi_cipher *cptr;
-- struct crypto_tfm *tfm=NULL;
-+ struct crypto_cipher *tfm=NULL;
-
- cptr = alg->ixt_common.ixt_data;
- if (!cptr) {
-@@ -289,7 +289,7 @@ _capi_new_key (struct ipsec_alg_enc *alg
- /*
- * alloc tfm
- */
-- tfm = crypto_alloc_tfm(cptr->ciphername, CRYPTO_TFM_MODE_CBC);
-+ tfm = crypto_alloc_cipher(cptr->ciphername, 0, CRYPTO_ALG_ASYNC);
- if (!tfm) {
- printk(KERN_ERR "_capi_new_key(): "
- "NULL tfm for \"%s\" cryptoapi (\"%s\") algo\n"
-@@ -300,7 +300,7 @@ _capi_new_key (struct ipsec_alg_enc *alg
- printk(KERN_ERR "_capi_new_key(): "
- "failed new_key() for \"%s\" cryptoapi algo (keylen=%d)\n"
- , alg->ixt_common.ixt_name, keylen);
-- crypto_free_tfm(tfm);
-+ crypto_free_cipher(tfm);
- tfm=NULL;
- }
- err:
-@@ -317,23 +317,26 @@ err:
- static int
- _capi_cbc_encrypt(struct ipsec_alg_enc *alg, __u8 * key_e, __u8 * in, int ilen, const __u8 * iv, int encrypt) {
- int error =0;
-- struct crypto_tfm *tfm=(struct crypto_tfm *)key_e;
-+ struct crypto_blkcipher *tfm=(struct crypto_blkcipher *)key_e;
-+ struct blkcipher_desc desc;
- struct scatterlist sg = {
- .page = virt_to_page(in),
- .offset = (unsigned long)(in) % PAGE_SIZE,
- .length=ilen,
- };
-+ desc.tfm = tfm;
-+ desc.flags = 0;
- if (debug_crypto > 1)
- printk(KERN_DEBUG "klips_debug:_capi_cbc_encrypt:"
- "key_e=%p "
- "in=%p out=%p ilen=%d iv=%p encrypt=%d\n"
- , key_e
- , in, in, ilen, iv, encrypt);
-- crypto_cipher_set_iv(tfm, iv, crypto_tfm_alg_ivsize(tfm));
-+ crypto_blkcipher_set_iv(tfm, iv, crypto_blkcipher_ivsize(tfm));
- if (encrypt)
-- error = crypto_cipher_encrypt (tfm, &sg, &sg, ilen);
-+ error = crypto_blkcipher_encrypt (&desc, &sg, &sg, ilen);
- else
-- error = crypto_cipher_decrypt (tfm, &sg, &sg, ilen);
-+ error = crypto_blkcipher_decrypt (&desc, &sg, &sg, ilen);
- if (debug_crypto > 1)
- printk(KERN_DEBUG "klips_debug:_capi_cbc_encrypt:"
- "error=%d\n"
-@@ -370,8 +373,9 @@ setup_cipher_list (struct ipsec_alg_capi
- * use a local ci to avoid touching cptr->ci,
- * if register ipsec_alg success then bind cipher
- */
-- if(cptr->alg.ixt_common.ixt_support.ias_name == NULL) {
-- cptr->alg.ixt_common.ixt_support.ias_name = cptr->ciphername;
-+ if (cptr->alg.ixt_common.ixt_support.ias_name == NULL) {
-+printk(KERN_DEBUG "klips_debug: ias_name was nil\n");
-+// cptr->alg.ixt_common.ixt_support.ias_name = cptr->ciphername;
- }
-
- if( setup_cipher(cptr->ciphername) ) {
-diff -rduNp linux-2.6.21.5.openswan28/net/ipsec/sysctl_net_ipsec.c linux-2.6.21.5/net/ipsec/sysctl_net_ipsec.c
---- linux-2.6.21.5.openswan28/net/ipsec/sysctl_net_ipsec.c 2007-06-21 10:44:07.000000000 +0200
-+++ linux-2.6.21.5/net/ipsec/sysctl_net_ipsec.c 2007-06-21 22:33:51.000000000 +0200
-@@ -74,45 +74,45 @@ enum {
- static ctl_table ipsec_table[] = {
- #ifdef CONFIG_KLIPS_DEBUG
- { NET_IPSEC_DEBUG_AH, "debug_ah", &debug_ah,
-- sizeof(int), 0644, NULL, &proc_dointvec},
-+ sizeof(int), 0644, &proc_dointvec},
- { NET_IPSEC_DEBUG_ESP, "debug_esp", &debug_esp,
-- sizeof(int), 0644, NULL, &proc_dointvec},
-+ sizeof(int), 0644, &proc_dointvec},
- { NET_IPSEC_DEBUG_TUNNEL, "debug_tunnel", &debug_tunnel,
-- sizeof(int), 0644, NULL, &proc_dointvec},
-+ sizeof(int), 0644, &proc_dointvec},
- { NET_IPSEC_DEBUG_EROUTE, "debug_eroute", &debug_eroute,
-- sizeof(int), 0644, NULL, &proc_dointvec},
-+ sizeof(int), 0644, &proc_dointvec},
- { NET_IPSEC_DEBUG_SPI, "debug_spi", &debug_spi,
-- sizeof(int), 0644, NULL, &proc_dointvec},
-+ sizeof(int), 0644, &proc_dointvec},
- { NET_IPSEC_DEBUG_RADIJ, "debug_radij", &debug_radij,
-- sizeof(int), 0644, NULL, &proc_dointvec},
-+ sizeof(int), 0644, &proc_dointvec},
- { NET_IPSEC_DEBUG_NETLINK, "debug_netlink", &debug_netlink,
-- sizeof(int), 0644, NULL, &proc_dointvec},
-+ sizeof(int), 0644, &proc_dointvec},
- { NET_IPSEC_DEBUG_XFORM, "debug_xform", &debug_xform,
-- sizeof(int), 0644, NULL, &proc_dointvec},
-+ sizeof(int), 0644, &proc_dointvec},
- { NET_IPSEC_DEBUG_RCV, "debug_rcv", &debug_rcv,
-- sizeof(int), 0644, NULL, &proc_dointvec},
-+ sizeof(int), 0644, &proc_dointvec},
- { NET_IPSEC_DEBUG_PFKEY, "debug_pfkey", &debug_pfkey,
-- sizeof(int), 0644, NULL, &proc_dointvec},
-+ sizeof(int), 0644, &proc_dointvec},
- { NET_IPSEC_DEBUG_VERBOSE, "debug_verbose",&sysctl_ipsec_debug_verbose,
-- sizeof(int), 0644, NULL, &proc_dointvec},
-+ sizeof(int), 0644, &proc_dointvec},
- #ifdef CONFIG_KLIPS_IPCOMP
- { NET_IPSEC_DEBUG_IPCOMP, "debug_ipcomp", &sysctl_ipsec_debug_ipcomp,
-- sizeof(int), 0644, NULL, &proc_dointvec},
-+ sizeof(int), 0644, &proc_dointvec},
- #endif /* CONFIG_KLIPS_IPCOMP */
-
- #ifdef CONFIG_KLIPS_REGRESS
- { NET_IPSEC_REGRESS_PFKEY_LOSSAGE, "pfkey_lossage",
- &sysctl_ipsec_regress_pfkey_lossage,
-- sizeof(int), 0644, NULL, &proc_dointvec},
-+ sizeof(int), 0644, &proc_dointvec},
- #endif /* CONFIG_KLIPS_REGRESS */
-
- #endif /* CONFIG_KLIPS_DEBUG */
- { NET_IPSEC_ICMP, "icmp", &sysctl_ipsec_icmp,
-- sizeof(int), 0644, NULL, &proc_dointvec},
-+ sizeof(int), 0644, &proc_dointvec},
- { NET_IPSEC_INBOUND_POLICY_CHECK, "inbound_policy_check", &sysctl_ipsec_inbound_policy_check,
-- sizeof(int), 0644, NULL, &proc_dointvec},
-+ sizeof(int), 0644, &proc_dointvec},
- { NET_IPSEC_TOS, "tos", &sysctl_ipsec_tos,
-- sizeof(int), 0644, NULL, &proc_dointvec},
-+ sizeof(int), 0644, &proc_dointvec},
- {0}
- };
-
-@@ -130,7 +130,7 @@ static struct ctl_table_header *ipsec_ta
-
- int ipsec_sysctl_register(void)
- {
-- ipsec_table_header = register_sysctl_table(ipsec_root_table, 0);
-+ ipsec_table_header = register_sysctl_table(ipsec_root_table);
- if (!ipsec_table_header) {
- return -ENOMEM;
- }
--- /dev/null
+diff -rduNp linux-2.6.21.5.openswan28/net/ipsec/ipsec_alg_cryptoapi.c linux-2.6.21.5/net/ipsec/ipsec_alg_cryptoapi.c
+--- linux-2.6.21.5.openswan28/net/ipsec/ipsec_alg_cryptoapi.c 2007-06-21 10:44:07.000000000 +0200
++++ linux-2.6.21.5/net/ipsec/ipsec_alg_cryptoapi.c 2007-06-21 23:34:05.000000000 +0200
+@@ -197,7 +197,7 @@ static struct ipsec_alg_capi_cipher alg_
+ */
+ int setup_cipher(const char *ciphername)
+ {
+- return crypto_alg_available(ciphername, 0);
++ return crypto_has_alg(ciphername, 0, CRYPTO_ALG_ASYNC);
+ }
+
+ /*
+@@ -272,7 +272,7 @@ static __u8 *
+ _capi_new_key (struct ipsec_alg_enc *alg, const __u8 *key, size_t keylen)
+ {
+ struct ipsec_alg_capi_cipher *cptr;
+- struct crypto_tfm *tfm=NULL;
++ struct crypto_cipher *tfm=NULL;
+
+ cptr = alg->ixt_common.ixt_data;
+ if (!cptr) {
+@@ -289,7 +289,7 @@ _capi_new_key (struct ipsec_alg_enc *alg
+ /*
+ * alloc tfm
+ */
+- tfm = crypto_alloc_tfm(cptr->ciphername, CRYPTO_TFM_MODE_CBC);
++ tfm = crypto_alloc_cipher(cptr->ciphername, 0, CRYPTO_ALG_ASYNC);
+ if (!tfm) {
+ printk(KERN_ERR "_capi_new_key(): "
+ "NULL tfm for \"%s\" cryptoapi (\"%s\") algo\n"
+@@ -300,7 +300,7 @@ _capi_new_key (struct ipsec_alg_enc *alg
+ printk(KERN_ERR "_capi_new_key(): "
+ "failed new_key() for \"%s\" cryptoapi algo (keylen=%d)\n"
+ , alg->ixt_common.ixt_name, keylen);
+- crypto_free_tfm(tfm);
++ crypto_free_cipher(tfm);
+ tfm=NULL;
+ }
+ err:
+@@ -317,23 +317,26 @@ err:
+ static int
+ _capi_cbc_encrypt(struct ipsec_alg_enc *alg, __u8 * key_e, __u8 * in, int ilen, const __u8 * iv, int encrypt) {
+ int error =0;
+- struct crypto_tfm *tfm=(struct crypto_tfm *)key_e;
++ struct crypto_blkcipher *tfm=(struct crypto_blkcipher *)key_e;
++ struct blkcipher_desc desc;
+ struct scatterlist sg = {
+ .page = virt_to_page(in),
+ .offset = (unsigned long)(in) % PAGE_SIZE,
+ .length=ilen,
+ };
++ desc.tfm = tfm;
++ desc.flags = 0;
+ if (debug_crypto > 1)
+ printk(KERN_DEBUG "klips_debug:_capi_cbc_encrypt:"
+ "key_e=%p "
+ "in=%p out=%p ilen=%d iv=%p encrypt=%d\n"
+ , key_e
+ , in, in, ilen, iv, encrypt);
+- crypto_cipher_set_iv(tfm, iv, crypto_tfm_alg_ivsize(tfm));
++ crypto_blkcipher_set_iv(tfm, iv, crypto_blkcipher_ivsize(tfm));
+ if (encrypt)
+- error = crypto_cipher_encrypt (tfm, &sg, &sg, ilen);
++ error = crypto_blkcipher_encrypt (&desc, &sg, &sg, ilen);
+ else
+- error = crypto_cipher_decrypt (tfm, &sg, &sg, ilen);
++ error = crypto_blkcipher_decrypt (&desc, &sg, &sg, ilen);
+ if (debug_crypto > 1)
+ printk(KERN_DEBUG "klips_debug:_capi_cbc_encrypt:"
+ "error=%d\n"
+@@ -370,8 +373,9 @@ setup_cipher_list (struct ipsec_alg_capi
+ * use a local ci to avoid touching cptr->ci,
+ * if register ipsec_alg success then bind cipher
+ */
+- if(cptr->alg.ixt_common.ixt_support.ias_name == NULL) {
+- cptr->alg.ixt_common.ixt_support.ias_name = cptr->ciphername;
++ if (cptr->alg.ixt_common.ixt_support.ias_name == NULL) {
++printk(KERN_DEBUG "klips_debug: ias_name was nil\n");
++// cptr->alg.ixt_common.ixt_support.ias_name = cptr->ciphername;
+ }
+
+ if( setup_cipher(cptr->ciphername) ) {
+diff -rduNp linux-2.6.21.5.openswan28/net/ipsec/sysctl_net_ipsec.c linux-2.6.21.5/net/ipsec/sysctl_net_ipsec.c
+--- linux-2.6.21.5.openswan28/net/ipsec/sysctl_net_ipsec.c 2007-06-21 10:44:07.000000000 +0200
++++ linux-2.6.21.5/net/ipsec/sysctl_net_ipsec.c 2007-06-21 22:33:51.000000000 +0200
+@@ -74,45 +74,45 @@ enum {
+ static ctl_table ipsec_table[] = {
+ #ifdef CONFIG_KLIPS_DEBUG
+ { NET_IPSEC_DEBUG_AH, "debug_ah", &debug_ah,
+- sizeof(int), 0644, NULL, &proc_dointvec},
++ sizeof(int), 0644, &proc_dointvec},
+ { NET_IPSEC_DEBUG_ESP, "debug_esp", &debug_esp,
+- sizeof(int), 0644, NULL, &proc_dointvec},
++ sizeof(int), 0644, &proc_dointvec},
+ { NET_IPSEC_DEBUG_TUNNEL, "debug_tunnel", &debug_tunnel,
+- sizeof(int), 0644, NULL, &proc_dointvec},
++ sizeof(int), 0644, &proc_dointvec},
+ { NET_IPSEC_DEBUG_EROUTE, "debug_eroute", &debug_eroute,
+- sizeof(int), 0644, NULL, &proc_dointvec},
++ sizeof(int), 0644, &proc_dointvec},
+ { NET_IPSEC_DEBUG_SPI, "debug_spi", &debug_spi,
+- sizeof(int), 0644, NULL, &proc_dointvec},
++ sizeof(int), 0644, &proc_dointvec},
+ { NET_IPSEC_DEBUG_RADIJ, "debug_radij", &debug_radij,
+- sizeof(int), 0644, NULL, &proc_dointvec},
++ sizeof(int), 0644, &proc_dointvec},
+ { NET_IPSEC_DEBUG_NETLINK, "debug_netlink", &debug_netlink,
+- sizeof(int), 0644, NULL, &proc_dointvec},
++ sizeof(int), 0644, &proc_dointvec},
+ { NET_IPSEC_DEBUG_XFORM, "debug_xform", &debug_xform,
+- sizeof(int), 0644, NULL, &proc_dointvec},
++ sizeof(int), 0644, &proc_dointvec},
+ { NET_IPSEC_DEBUG_RCV, "debug_rcv", &debug_rcv,
+- sizeof(int), 0644, NULL, &proc_dointvec},
++ sizeof(int), 0644, &proc_dointvec},
+ { NET_IPSEC_DEBUG_PFKEY, "debug_pfkey", &debug_pfkey,
+- sizeof(int), 0644, NULL, &proc_dointvec},
++ sizeof(int), 0644, &proc_dointvec},
+ { NET_IPSEC_DEBUG_VERBOSE, "debug_verbose",&sysctl_ipsec_debug_verbose,
+- sizeof(int), 0644, NULL, &proc_dointvec},
++ sizeof(int), 0644, &proc_dointvec},
+ #ifdef CONFIG_KLIPS_IPCOMP
+ { NET_IPSEC_DEBUG_IPCOMP, "debug_ipcomp", &sysctl_ipsec_debug_ipcomp,
+- sizeof(int), 0644, NULL, &proc_dointvec},
++ sizeof(int), 0644, &proc_dointvec},
+ #endif /* CONFIG_KLIPS_IPCOMP */
+
+ #ifdef CONFIG_KLIPS_REGRESS
+ { NET_IPSEC_REGRESS_PFKEY_LOSSAGE, "pfkey_lossage",
+ &sysctl_ipsec_regress_pfkey_lossage,
+- sizeof(int), 0644, NULL, &proc_dointvec},
++ sizeof(int), 0644, &proc_dointvec},
+ #endif /* CONFIG_KLIPS_REGRESS */
+
+ #endif /* CONFIG_KLIPS_DEBUG */
+ { NET_IPSEC_ICMP, "icmp", &sysctl_ipsec_icmp,
+- sizeof(int), 0644, NULL, &proc_dointvec},
++ sizeof(int), 0644, &proc_dointvec},
+ { NET_IPSEC_INBOUND_POLICY_CHECK, "inbound_policy_check", &sysctl_ipsec_inbound_policy_check,
+- sizeof(int), 0644, NULL, &proc_dointvec},
++ sizeof(int), 0644, &proc_dointvec},
+ { NET_IPSEC_TOS, "tos", &sysctl_ipsec_tos,
+- sizeof(int), 0644, NULL, &proc_dointvec},
++ sizeof(int), 0644, &proc_dointvec},
+ {0}
+ };
+
+@@ -130,7 +130,7 @@ static struct ctl_table_header *ipsec_ta
+
+ int ipsec_sysctl_register(void)
+ {
+- ipsec_table_header = register_sysctl_table(ipsec_root_table, 0);
++ ipsec_table_header = register_sysctl_table(ipsec_root_table);
+ if (!ipsec_table_header) {
+ return -ENOMEM;
+ }