Deleted Added
full compact
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 ---