coreboot-kgpe-d16/src/lib
Vadim Bendebury 243c614134 lib: add base64 decoder
It became necessary to decode base64 data retrieved from VPD and
convert it into binary for inclusion in the device tree.

The patch introduces the decoder function based on the description
found in http://en.wikipedia.org/wiki/Base64.

An open source implementation from http://base64.sourceforge.net was
considered, in the end the only thing borrowed from it is the table to
translate base64 ascii characters into numbers in 0..63 range.

BRANCH=none
BUG=chromium:450169

TEST=created a test harness generating random contents of random size
     (in 8 to 32766 bytes range), then converting the contents into
     base64 using the Linux utility, and then converting it back to
     binary using this function and comparing the results.

     It succeeded 1700 iterations before it was stopped.

Change-Id: I502f2c9494c99ba95ece37a7220c0c70c4755be2
Signed-off-by: Patrick Georgi <pgeorgi@chromium.org>
Original-Commit-Id: 6609f76e1559d3cdd402276055c99e0de7da27c8
Original-Change-Id: I5ed68af3a4daead50c44ae0f0c63d836f4b66851
Original-Signed-off-by: Vadim Bendebury <vbendeb@chromium.org>
Original-Reviewed-on: https://chromium-review.googlesource.com/262945
Original-Reviewed-by: Aaron Durbin <adurbin@chromium.org>
Reviewed-on: http://review.coreboot.org/9892
Tested-by: build bot (Jenkins)
Reviewed-by: Stefan Reinauer <stefan.reinauer@coreboot.org>
2015-04-22 08:50:54 +02:00
..
loaders timestamps: You can never have enough of them! 2015-04-14 09:03:40 +02:00
Makefile.inc lib: add base64 decoder 2015-04-22 08:50:54 +02:00
b64_decode.c lib: add base64 decoder 2015-04-22 08:50:54 +02:00
bootblock.ld New mechanism to define SRAM/memory map with automatic bounds checking 2015-04-06 22:05:01 +02:00
bootmem.c
bootmode.c
cbfs.c cbfs: Print absolute offsets of loaded files 2015-04-21 08:17:40 +02:00
cbfs_core.c cbfs: look for CBFS header in a predefined place 2015-04-17 09:54:40 +02:00
cbfs_core.h CBFS: Automate ROM image layout and remove hardcoded offsets 2015-04-14 09:01:27 +02:00
cbfs_spi.c New mechanism to define SRAM/memory map with automatic bounds checking 2015-04-06 22:05:01 +02:00
cbmem_common.c coreboot: fix munged license text 2015-03-09 02:32:19 +01:00
cbmem_console.c New mechanism to define SRAM/memory map with automatic bounds checking 2015-04-06 22:05:01 +02:00
clog2.c
compute_ip_checksum.c
coreboot_table.c uart: pass register width in the coreboot table 2015-04-17 09:53:39 +02:00
debug.c misc: Drop print_ implementation from non-romcc boards 2015-01-09 06:12:22 +01:00
delay.c
dynamic_cbmem.c hardwaremain: explicitly call cbmem_initialize() early 2015-04-07 23:02:32 +02:00
edid.c Unify byte order macros and clrsetbits 2015-04-21 08:23:25 +02:00
fallback_boot.c lib: Add Kconfig option to enable/disable auto fallback control 2015-03-17 04:22:23 +01:00
gcc.c
gcov-glue.c bootstate: use structure pointers for scheduling callbacks 2015-03-18 16:41:43 +01:00
gcov-io.c
gcov-io.h
gcov-iov.h
generic_dump_spd.c misc: Drop print_ implementation from non-romcc boards 2015-01-09 06:12:22 +01:00
generic_sdram.c misc: Drop print_ implementation from non-romcc boards 2015-01-09 06:12:22 +01:00
gpio.c Add delay before reading GPIOs in gpio_base2_value() 2015-04-17 09:21:03 +02:00
halt.c
hardwaremain.c timer: Reestablish init_timer(), consolidate timer initialization calls 2015-04-14 09:03:28 +02:00
hexdump.c
jpeg.c
jpeg.h
libgcov.c
lzma.c timestamps: You can never have enough of them! 2015-04-14 09:03:40 +02:00
lzmadecode.c
lzmadecode.h
malloc.c
memchr.c
memcmp.c
memcpy.c
memmove.c
memrange.c coreboot memrange: Two changes for zero size or empty memrange 2015-03-04 19:55:19 +01:00
memset.c
primitive_memtest.c Primitive memory test 2015-01-09 16:50:55 +01:00
prog_ops.c program loading: add prog_run() function 2015-04-03 14:52:47 +02:00
ramstage.ld New mechanism to define SRAM/memory map with automatic bounds checking 2015-04-06 22:05:01 +02:00
ramstage_cache.c program loading: introduce struct prog 2015-04-03 14:51:51 +02:00
ramtest.c misc: Drop print_ implementation from non-romcc boards 2015-01-09 06:12:22 +01:00
reg_script.c baytrail: Change all SoC headers to <soc/headername.h> system 2015-04-07 18:23:21 +02:00
rmodule.c rmodule: remove cbmem_entry usage 2015-04-07 23:03:45 +02:00
rmodule.ld New mechanism to define SRAM/memory map with automatic bounds checking 2015-04-06 22:05:01 +02:00
romstage.ld New mechanism to define SRAM/memory map with automatic bounds checking 2015-04-06 22:05:01 +02:00
selfboot.c Unify byte order macros and clrsetbits 2015-04-21 08:23:25 +02:00
stack.c arm: Fix checkstack() to use correct stack size 2015-04-14 09:04:04 +02:00
thread.c
timer.c timer: Reestablish init_timer(), consolidate timer initialization calls 2015-04-14 09:03:28 +02:00
timer_queue.c
timestamp.c timestamps: You can never have enough of them! 2015-04-14 09:03:40 +02:00
tlcl.c chromeos: vboot2: Add TPM PCR extension support 2015-04-20 17:06:28 +02:00
tlcl_internal.h vboot2: read secdata and nvdata 2015-03-23 19:51:47 +01:00
tlcl_structures.h vboot2: copy tlcl from vboot_reference as a preparation for vboot2 integration 2015-01-27 01:43:57 +01:00
tpm_error_messages.h TPM: Fix whitespace 2015-02-06 00:25:59 +01:00
trace.c
version.c build.h: remove variable for the builduser, -hostname and -domain 2015-03-09 17:53:16 +01:00