pmt: initial 2.9.1 update
This commit is contained in:
74
jni/e2fsprogs/lib/e2p/crypto_mode.c
Executable file
74
jni/e2fsprogs/lib/e2p/crypto_mode.c
Executable file
@@ -0,0 +1,74 @@
|
||||
/*
|
||||
* crypto_mode.c --- convert between encryption modes and strings
|
||||
*
|
||||
* Copyright (C) 1999 Theodore Ts'o <tytso@mit.edu>
|
||||
*
|
||||
* %Begin-Header%
|
||||
* This file may be redistributed under the terms of the GNU Library
|
||||
* General Public License, version 2.
|
||||
* %End-Header%
|
||||
*/
|
||||
|
||||
#include "config.h"
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
#include <strings.h>
|
||||
#include <ctype.h>
|
||||
#include <errno.h>
|
||||
|
||||
#include "e2p.h"
|
||||
|
||||
struct mode {
|
||||
int num;
|
||||
const char *string;
|
||||
};
|
||||
|
||||
static struct mode mode_list[] = {
|
||||
{ EXT4_ENCRYPTION_MODE_INVALID, "Invalid"},
|
||||
{ EXT4_ENCRYPTION_MODE_AES_256_XTS, "AES-256-XTS"},
|
||||
{ EXT4_ENCRYPTION_MODE_AES_256_GCM, "AES-256-GCM"},
|
||||
{ EXT4_ENCRYPTION_MODE_AES_256_CBC, "AES-256-CBC"},
|
||||
{ 0, 0 },
|
||||
};
|
||||
|
||||
const char *e2p_encmode2string(int num)
|
||||
{
|
||||
struct mode *p;
|
||||
static char buf[20];
|
||||
|
||||
for (p = mode_list; p->string; p++) {
|
||||
if (num == p->num)
|
||||
return p->string;
|
||||
}
|
||||
sprintf(buf, "ENC_MODE_%d", num);
|
||||
return buf;
|
||||
}
|
||||
|
||||
/*
|
||||
* Returns the hash algorithm, or -1 on error
|
||||
*/
|
||||
int e2p_string2encmode(char *string)
|
||||
{
|
||||
struct mode *p;
|
||||
char *eptr;
|
||||
int num;
|
||||
|
||||
for (p = mode_list; p->string; p++) {
|
||||
if (!strcasecmp(string, p->string)) {
|
||||
return p->num;
|
||||
}
|
||||
}
|
||||
if (strncasecmp(string, "ENC_MODE_", 9))
|
||||
return -1;
|
||||
|
||||
if (string[9] == 0)
|
||||
return -1;
|
||||
num = strtol(string+9, &eptr, 10);
|
||||
if (num > 255 || num < 0)
|
||||
return -1;
|
||||
if (*eptr)
|
||||
return -1;
|
||||
return num;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user