L4Re/departure

libext2fs/lib/libe2p/crypto_mode.c

617:2733e5770ee9
9 months ago Paul Boddie Made the run command wait for completion, introducing the spawn command to run programs in the background. Introduced conveniences for waiting for the last job to be initiated and for piping from the last job, also subscribing to signals from pipe-supplying jobs so that they may be transparently removed from the job list upon completion. Augmented the job listing with the "+" notation familiar from Unix. Prevented new jobs from being started when no job slots are available.
     1 /*     2  * crypto_mode.c --- convert between encryption modes and strings     3  *     4  * Copyright (C) 1999  Theodore Ts'o <tytso@mit.edu>     5  *     6  * %Begin-Header%     7  * This file may be redistributed under the terms of the GNU Library     8  * General Public License, version 2.     9  * %End-Header%    10  */    11     12 #include "config.h"    13 #include <stdio.h>    14 #include <stdlib.h>    15 #include <string.h>    16 #include <strings.h>    17 #include <ctype.h>    18 #include <errno.h>    19     20 #include "e2p.h"    21     22 struct mode {    23 	int		num;    24 	const char	*string;    25 };    26     27 static struct mode mode_list[] = {    28 	{	EXT4_ENCRYPTION_MODE_INVALID,		"Invalid"},    29 	{	EXT4_ENCRYPTION_MODE_AES_256_XTS,	"AES-256-XTS"},    30 	{	EXT4_ENCRYPTION_MODE_AES_256_GCM,	"AES-256-GCM"},    31 	{	EXT4_ENCRYPTION_MODE_AES_256_CBC,	"AES-256-CBC"},    32 	{	0, 0 },    33 };    34     35 const char *e2p_encmode2string(int num)    36 {    37 	struct mode  *p;    38 	static char buf[20];    39     40 	for (p = mode_list; p->string; p++) {    41 		if (num == p->num)    42 			return p->string;    43 	}    44 	sprintf(buf, "ENC_MODE_%d", num);    45 	return buf;    46 }    47     48 /*    49  * Returns the hash algorithm, or -1 on error    50  */    51 int e2p_string2encmode(char *string)    52 {    53 	struct mode	*p;    54 	char		*eptr;    55 	int		num;    56     57 	for (p = mode_list; p->string; p++) {    58 		if (!strcasecmp(string, p->string)) {    59 			return p->num;    60 		}    61 	}    62 	if (strncasecmp(string, "ENC_MODE_", 9))    63 		return -1;    64     65 	if (string[9] == 0)    66 		return -1;    67 	num = strtol(string+9, &eptr, 10);    68 	if (num > 255 || num < 0)    69 		return -1;    70 	if (*eptr)    71 		return -1;    72 	return num;    73 }    74