mirror of
https://github.com/proski/madwifi
synced 2024-11-22 06:21:47 +03:00
Make crypto test suite more robust
Allocate all memory at once to simplify error handling. Allocate a network device and use it both for the master and the VAP. Set a descriptive name on the network device, as it's used in error and debug messages. git-svn-id: http://madwifi-project.org/svn/madwifi/trunk@4122 0192ed92-7a03-0410-a25b-9323aeb14dbd
This commit is contained in:
parent
6f08b9347d
commit
6b7b69cb37
@ -713,26 +713,28 @@ MODULE_PARM_DESC(debug, "Enable IEEE80211_MSG_CRYPTO");
|
|||||||
static int __init
|
static int __init
|
||||||
init_crypto_ccmp_test(void)
|
init_crypto_ccmp_test(void)
|
||||||
{
|
{
|
||||||
struct ieee80211com *ic;
|
struct {
|
||||||
|
struct ieee80211vap vap;
|
||||||
|
struct ieee80211com ic;
|
||||||
|
struct net_device netdev;
|
||||||
|
} *buf;
|
||||||
struct ieee80211vap *vap;
|
struct ieee80211vap *vap;
|
||||||
int i, pass, total;
|
int i, pass, total;
|
||||||
|
|
||||||
ic = kzalloc(sizeof(*ic), GFP_KERNEL);
|
buf = kzalloc(sizeof(*buf), GFP_KERNEL);
|
||||||
if (!ic)
|
if (!buf)
|
||||||
return -ENOMEM;
|
return -ENOMEM;
|
||||||
|
|
||||||
ieee80211_crypto_attach(ic);
|
vap = &buf->vap;
|
||||||
|
vap->iv_ic = &buf->ic;
|
||||||
|
vap->iv_dev = &buf->netdev;
|
||||||
|
vap->iv_ic->ic_dev = vap->iv_dev;
|
||||||
|
strncpy(vap->iv_dev->name, "CCMP test", sizeof(vap->iv_dev->name) - 1);
|
||||||
|
|
||||||
vap = kzalloc(sizeof(*vap), GFP_KERNEL);
|
|
||||||
if (!vap) {
|
|
||||||
kfree(ic);
|
|
||||||
return -ENOMEM;
|
|
||||||
}
|
|
||||||
|
|
||||||
vap->iv_ic = ic;
|
|
||||||
if (debug)
|
if (debug)
|
||||||
vap->iv_debug = IEEE80211_MSG_CRYPTO;
|
vap->iv_debug = IEEE80211_MSG_CRYPTO;
|
||||||
|
|
||||||
|
ieee80211_crypto_attach(vap->iv_ic);
|
||||||
ieee80211_crypto_vattach(vap);
|
ieee80211_crypto_vattach(vap);
|
||||||
|
|
||||||
pass = 0;
|
pass = 0;
|
||||||
@ -744,9 +746,8 @@ init_crypto_ccmp_test(void)
|
|||||||
}
|
}
|
||||||
printk("%u of %u 802.11i AES-CCMP test vectors passed\n", pass, total);
|
printk("%u of %u 802.11i AES-CCMP test vectors passed\n", pass, total);
|
||||||
ieee80211_crypto_vdetach(vap);
|
ieee80211_crypto_vdetach(vap);
|
||||||
ieee80211_crypto_detach(ic);
|
ieee80211_crypto_detach(vap->iv_ic);
|
||||||
kfree(vap);
|
kfree(buf);
|
||||||
kfree(ic);
|
|
||||||
return (pass == total ? 0 : -ENXIO);
|
return (pass == total ? 0 : -ENXIO);
|
||||||
}
|
}
|
||||||
module_init(init_crypto_ccmp_test);
|
module_init(init_crypto_ccmp_test);
|
||||||
|
@ -372,26 +372,28 @@ MODULE_PARM_DESC(debug, "Enable IEEE80211_MSG_CRYPTO");
|
|||||||
static int __init
|
static int __init
|
||||||
init_crypto_tkip_test(void)
|
init_crypto_tkip_test(void)
|
||||||
{
|
{
|
||||||
struct ieee80211com *ic;
|
struct {
|
||||||
|
struct ieee80211vap vap;
|
||||||
|
struct ieee80211com ic;
|
||||||
|
struct net_device netdev;
|
||||||
|
} *buf;
|
||||||
struct ieee80211vap *vap;
|
struct ieee80211vap *vap;
|
||||||
int i, pass, total;
|
int i, pass, total;
|
||||||
|
|
||||||
ic = kzalloc(sizeof(*ic), GFP_KERNEL);
|
buf = kzalloc(sizeof(*buf), GFP_KERNEL);
|
||||||
if (!ic)
|
if (!buf)
|
||||||
return -ENOMEM;
|
return -ENOMEM;
|
||||||
|
|
||||||
ieee80211_crypto_attach(ic);
|
vap = &buf->vap;
|
||||||
|
vap->iv_ic = &buf->ic;
|
||||||
|
vap->iv_dev = &buf->netdev;
|
||||||
|
vap->iv_ic->ic_dev = vap->iv_dev;
|
||||||
|
strncpy(vap->iv_dev->name, "TKIP test", sizeof(vap->iv_dev->name) - 1);
|
||||||
|
|
||||||
vap = kzalloc(sizeof(*vap), GFP_KERNEL);
|
|
||||||
if (!vap) {
|
|
||||||
kfree(ic);
|
|
||||||
return -ENOMEM;
|
|
||||||
}
|
|
||||||
|
|
||||||
vap->iv_ic = ic;
|
|
||||||
if (debug)
|
if (debug)
|
||||||
vap->iv_debug = IEEE80211_MSG_CRYPTO;
|
vap->iv_debug = IEEE80211_MSG_CRYPTO;
|
||||||
|
|
||||||
|
ieee80211_crypto_attach(vap->iv_ic);
|
||||||
ieee80211_crypto_vattach(vap);
|
ieee80211_crypto_vattach(vap);
|
||||||
|
|
||||||
pass = 0;
|
pass = 0;
|
||||||
@ -403,9 +405,8 @@ init_crypto_tkip_test(void)
|
|||||||
}
|
}
|
||||||
printk("%u of %u 802.11i TKIP test vectors passed\n", pass, total);
|
printk("%u of %u 802.11i TKIP test vectors passed\n", pass, total);
|
||||||
ieee80211_crypto_vdetach(vap);
|
ieee80211_crypto_vdetach(vap);
|
||||||
ieee80211_crypto_detach(ic);
|
ieee80211_crypto_detach(vap->iv_ic);
|
||||||
kfree(vap);
|
kfree(buf);
|
||||||
kfree(ic);
|
|
||||||
return (pass == total ? 0 : -ENXIO);
|
return (pass == total ? 0 : -ENXIO);
|
||||||
}
|
}
|
||||||
module_init(init_crypto_tkip_test);
|
module_init(init_crypto_tkip_test);
|
||||||
|
@ -317,26 +317,28 @@ MODULE_PARM_DESC(debug, "Enable IEEE80211_MSG_CRYPTO");
|
|||||||
static int __init
|
static int __init
|
||||||
init_crypto_wep_test(void)
|
init_crypto_wep_test(void)
|
||||||
{
|
{
|
||||||
struct ieee80211com *ic;
|
struct {
|
||||||
|
struct ieee80211vap vap;
|
||||||
|
struct ieee80211com ic;
|
||||||
|
struct net_device netdev;
|
||||||
|
} *buf;
|
||||||
struct ieee80211vap *vap;
|
struct ieee80211vap *vap;
|
||||||
int i, pass, total;
|
int i, pass, total;
|
||||||
|
|
||||||
ic = kzalloc(sizeof(*ic), GFP_KERNEL);
|
buf = kzalloc(sizeof(*buf), GFP_KERNEL);
|
||||||
if (!ic)
|
if (!buf)
|
||||||
return -ENOMEM;
|
return -ENOMEM;
|
||||||
|
|
||||||
ieee80211_crypto_attach(ic);
|
vap = &buf->vap;
|
||||||
|
vap->iv_ic = &buf->ic;
|
||||||
|
vap->iv_dev = &buf->netdev;
|
||||||
|
vap->iv_ic->ic_dev = vap->iv_dev;
|
||||||
|
strncpy(vap->iv_dev->name, "WEP test", sizeof(vap->iv_dev->name) - 1);
|
||||||
|
|
||||||
vap = kzalloc(sizeof(*vap), GFP_KERNEL);
|
|
||||||
if (!vap) {
|
|
||||||
kfree(ic);
|
|
||||||
return -ENOMEM;
|
|
||||||
}
|
|
||||||
|
|
||||||
vap->iv_ic = ic;
|
|
||||||
if (debug)
|
if (debug)
|
||||||
vap->iv_debug = IEEE80211_MSG_CRYPTO;
|
vap->iv_debug = IEEE80211_MSG_CRYPTO;
|
||||||
|
|
||||||
|
ieee80211_crypto_attach(vap->iv_ic);
|
||||||
ieee80211_crypto_vattach(vap);
|
ieee80211_crypto_vattach(vap);
|
||||||
|
|
||||||
pass = 0;
|
pass = 0;
|
||||||
@ -348,9 +350,8 @@ init_crypto_wep_test(void)
|
|||||||
}
|
}
|
||||||
printk("%u of %u 802.11i WEP test vectors passed\n", pass, total);
|
printk("%u of %u 802.11i WEP test vectors passed\n", pass, total);
|
||||||
ieee80211_crypto_vdetach(vap);
|
ieee80211_crypto_vdetach(vap);
|
||||||
ieee80211_crypto_detach(ic);
|
ieee80211_crypto_detach(vap->iv_ic);
|
||||||
kfree(vap);
|
kfree(buf);
|
||||||
kfree(ic);
|
|
||||||
return (pass == total ? 0 : -ENXIO);
|
return (pass == total ? 0 : -ENXIO);
|
||||||
}
|
}
|
||||||
module_init(init_crypto_wep_test);
|
module_init(init_crypto_wep_test);
|
||||||
|
Loading…
Reference in New Issue
Block a user