geom_aes.c (98987) | geom_aes.c (104057) |
---|---|
1/*- 2 * Copyright (c) 2002 Poul-Henning Kamp 3 * Copyright (c) 2002 Networks Associates Technology, Inc. 4 * All rights reserved. 5 * 6 * This software was developed for the FreeBSD Project by Poul-Henning Kamp 7 * and NAI Labs, the Security Research Division of Network Associates, Inc. 8 * under DARPA/SPAWAR contract N66001-01-C-8035 ("CBOSS"), as part of the --- 18 unchanged lines hidden (view full) --- 27 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 28 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 29 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 30 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 31 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 32 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 33 * SUCH DAMAGE. 34 * | 1/*- 2 * Copyright (c) 2002 Poul-Henning Kamp 3 * Copyright (c) 2002 Networks Associates Technology, Inc. 4 * All rights reserved. 5 * 6 * This software was developed for the FreeBSD Project by Poul-Henning Kamp 7 * and NAI Labs, the Security Research Division of Network Associates, Inc. 8 * under DARPA/SPAWAR contract N66001-01-C-8035 ("CBOSS"), as part of the --- 18 unchanged lines hidden (view full) --- 27 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 28 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 29 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 30 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 31 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 32 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 33 * SUCH DAMAGE. 34 * |
35 * $FreeBSD: head/sys/geom/geom_aes.c 98987 2002-06-28 21:25:15Z phk $ | 35 * $FreeBSD: head/sys/geom/geom_aes.c 104057 2002-09-27 20:47:23Z phk $ |
36 * 37 * This method provides AES encryption with a compiled in key (default 38 * all zeroes). 39 * 40 * XXX: This could probably save a lot of code by pretending to be a slicer. 41 */ 42 43#include <sys/param.h> --- 146 unchanged lines hidden (view full) --- 190 off_t o; 191 192 gp = bp->bio_to->geom; 193 cp = LIST_FIRST(&gp->consumer); 194 sc = gp->softc; 195 switch (bp->bio_cmd) { 196 case BIO_READ: 197 bp2 = g_clone_bio(bp); | 36 * 37 * This method provides AES encryption with a compiled in key (default 38 * all zeroes). 39 * 40 * XXX: This could probably save a lot of code by pretending to be a slicer. 41 */ 42 43#include <sys/param.h> --- 146 unchanged lines hidden (view full) --- 190 off_t o; 191 192 gp = bp->bio_to->geom; 193 cp = LIST_FIRST(&gp->consumer); 194 sc = gp->softc; 195 switch (bp->bio_cmd) { 196 case BIO_READ: 197 bp2 = g_clone_bio(bp); |
198 if (bp2 == NULL) { 199 g_io_fail(bp, ENOMEM); 200 return; 201 } |
|
198 bp2->bio_done = g_aes_read_done; 199 bp2->bio_offset += sc->sectorsize; 200 g_io_request(bp2, cp); 201 break; 202 case BIO_WRITE: 203 bp2 = g_clone_bio(bp); | 202 bp2->bio_done = g_aes_read_done; 203 bp2->bio_offset += sc->sectorsize; 204 g_io_request(bp2, cp); 205 break; 206 case BIO_WRITE: 207 bp2 = g_clone_bio(bp); |
208 if (bp2 == NULL) { 209 g_io_fail(bp, ENOMEM); 210 return; 211 } |
|
204 bp2->bio_done = g_aes_write_done; 205 bp2->bio_offset += sc->sectorsize; 206 bp2->bio_data = g_malloc(bp->bio_length, M_WAITOK); 207 b = bp->bio_data; 208 e = bp->bio_data; 209 e += bp->bio_length; 210 p2 = bp2->bio_data; 211 o = bp->bio_offset; --- 9 unchanged lines hidden (view full) --- 221 break; 222 case BIO_GETATTR: 223 case BIO_SETATTR: 224 if (g_handleattr_off_t(bp, "GEOM::mediasize", sc->mediasize)) 225 return; 226 if (g_handleattr_int(bp, "GEOM::sectorsize", sc->sectorsize)) 227 return; 228 bp2 = g_clone_bio(bp); | 212 bp2->bio_done = g_aes_write_done; 213 bp2->bio_offset += sc->sectorsize; 214 bp2->bio_data = g_malloc(bp->bio_length, M_WAITOK); 215 b = bp->bio_data; 216 e = bp->bio_data; 217 e += bp->bio_length; 218 p2 = bp2->bio_data; 219 o = bp->bio_offset; --- 9 unchanged lines hidden (view full) --- 229 break; 230 case BIO_GETATTR: 231 case BIO_SETATTR: 232 if (g_handleattr_off_t(bp, "GEOM::mediasize", sc->mediasize)) 233 return; 234 if (g_handleattr_int(bp, "GEOM::sectorsize", sc->sectorsize)) 235 return; 236 bp2 = g_clone_bio(bp); |
237 if (bp2 == NULL) { 238 g_io_fail(bp, ENOMEM); 239 return; 240 } |
|
229 bp2->bio_done = g_std_done; 230 bp2->bio_offset += sc->sectorsize; 231 g_io_request(bp2, cp); 232 break; 233 default: 234 bp->bio_error = EOPNOTSUPP; 235 g_io_deliver(bp); 236 return; --- 148 unchanged lines hidden --- | 241 bp2->bio_done = g_std_done; 242 bp2->bio_offset += sc->sectorsize; 243 g_io_request(bp2, cp); 244 break; 245 default: 246 bp->bio_error = EOPNOTSUPP; 247 g_io_deliver(bp); 248 return; --- 148 unchanged lines hidden --- |