Change the type of freesession to take u_int64_t as argument.
authorangelos <angelos@openbsd.org>
Sun, 23 Apr 2000 05:01:53 +0000 (05:01 +0000)
committerangelos <angelos@openbsd.org>
Sun, 23 Apr 2000 05:01:53 +0000 (05:01 +0000)
sys/crypto/crypto.c
sys/crypto/crypto.h
sys/crypto/cryptosoft.c
sys/crypto/cryptosoft.h

index c30c50d..d6a4f4c 100644 (file)
@@ -115,7 +115,7 @@ crypto_newsession(u_int64_t *sid, struct cryptoini *cri)
 int
 crypto_freesession(u_int64_t sid)
 {
-    u_int32_t hid, lid;
+    u_int32_t hid;
     int err = 0;
 
     if (crypto_drivers == NULL)
@@ -123,7 +123,6 @@ crypto_freesession(u_int64_t sid)
 
     /* Determine two IDs */
     hid = (sid >> 31) & 0xffffffff;
-    lid = sid & 0xffffffff;
 
     if (hid >= crypto_drivers_num)
       return ENOENT;
@@ -133,7 +132,7 @@ crypto_freesession(u_int64_t sid)
 
     /* Call the driver cleanup routine, if available */
     if (crypto_drivers[hid].cc_freesession)
-      err = crypto_drivers[hid].cc_freesession(lid);
+      err = crypto_drivers[hid].cc_freesession(sid);
 
     /*
      * If this was the last session of a driver marked as invalid, make
@@ -228,7 +227,7 @@ crypto_register(u_int32_t driverid, int alg, void *newses, void *freeses,
        crypto_drivers[driverid].cc_process =
                        (int (*) (struct cryptop *)) process;
        crypto_drivers[driverid].cc_freesession =
-                       (int (*) (u_int32_t)) freeses;
+                       (int (*) (u_int64_t)) freeses;
     }
 
     return 0;
index 9e3d688..b46433a 100644 (file)
@@ -145,7 +145,7 @@ struct cryptocap
 
     int             (*cc_newsession) (u_int32_t *, struct cryptoini *);
     int             (*cc_process) (struct cryptop *);
-    int             (*cc_freesession) (u_int32_t);
+    int             (*cc_freesession) (u_int64_t);
 };
 
 
index 87e5909..f68b811 100644 (file)
@@ -564,11 +564,12 @@ swcr_newsession(u_int32_t *sid, struct cryptoini *cri)
  * Free a session.
  */
 int
-swcr_freesession(u_int32_t sid)
+swcr_freesession(u_int64_t tid)
 {
     struct swcr_data *swd;
     struct enc_xform *txf;
     struct auth_hash *axf;
+    u_int32_t sid = (tid >> 31) & 0xffff;
 
     if ((sid > swcr_sesnum) || (swcr_sessions == NULL) ||
        (swcr_sessions[sid] == NULL))
index 459d085..7741f7d 100644 (file)
@@ -62,7 +62,7 @@ extern int swcr_authcompute(struct cryptodesc *, struct swcr_data *,
                            caddr_t, int);
 extern int swcr_process(struct cryptop *);
 extern int swcr_newsession(u_int32_t *, struct cryptoini *);
-extern int swcr_freesession(u_int32_t);
+extern int swcr_freesession(u_int64_t);
 extern void swcr_init(void);
 #endif /* _KERNEL */