Deleted Added
full compact
35c35
< * $FreeBSD: head/sys/geom/bde/g_bde_lock.c 105464 2002-10-19 17:02:17Z phk $
---
> * $FreeBSD: head/sys/geom/bde/g_bde_lock.c 105512 2002-10-20 11:09:58Z phk $
146c146
< g_bde_arc4_seed(struct g_bde_softc *sc, void *ptr, u_int len)
---
> g_bde_arc4_seed(struct g_bde_softc *sc, const void *ptr, u_int len)
148c148,149
< u_char k[256], *p, c;
---
> u_char k[256], c;
> const u_char *p;
182a184,185
> bcopy(input, output, 16);
> return 0;
191a195
> bzero(&ki, sizeof ki);
203a208,209
> bcopy(input, output, 16);
> return 0;
212a219
> bzero(&ki, sizeof ki);
217c224
< * Encode/Decode lock sectors.
---
> * Encode/Decode lock sectors, do the real work.
220,221c227,228
< int
< g_bde_decrypt_lock(struct g_bde_softc *sc, u_char *sbox, u_char *meta, off_t mediasize, u_int sectorsize, u_int *nkey)
---
> static int
> g_bde_decrypt_lockx(struct g_bde_softc *sc, u_char *sbox, u_char *meta, off_t mediasize, u_int sectorsize, u_int *nkey)
242c249
< return (ESRCH);
---
> return (EINVAL);
259c266
< for (i = 0; i < (int)sizeof(*gl); i++)
---
> for (i = 0; i < G_BDE_LOCKSIZE; i++)
290c297
< return (ESRCH);
---
> return (ENOTDIR);
311a319,353
>
> /*
> * Encode/Decode lock sectors.
> */
>
> int
> g_bde_decrypt_lock(struct g_bde_softc *sc, u_char *sbox, u_char *meta, off_t mediasize, u_int sectorsize, u_int *nkey)
> {
> u_char *buf, buf1[16];
> int error, e, i;
>
> bzero(buf1, sizeof buf1);
> if (bcmp(buf1, meta, sizeof buf1))
> return (g_bde_decrypt_lockx(sc, sbox, meta, mediasize,
> sectorsize, nkey));
>
> buf = g_read_data(sc->consumer, 0, sectorsize, &error);
> if (buf == NULL)
> return(error);
> error = 0;
> for (i = 0; i < G_BDE_MAXKEYS; i++) {
> e = g_bde_decrypt_lockx(sc, sbox, buf + i * 16, mediasize,
> sectorsize, nkey);
> if (e == 0 || e == ENOENT) {
> error = e;
> break;
> }
> if (e == ESRCH)
> error = ENOTDIR;
> else if (e != 0)
> error = e;
> }
> g_free(buf);
> return (error);
> }