Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 014ab468 authored by Elliott Hughes's avatar Elliott Hughes
Browse files

toybox has md5sum, so lose toolbox's md5.

We've now removed enough that for the first time toolbox has
dipped below toybox in size:

  -rwxr-xr-x root     shell      230800 2014-12-11 18:55 toolbox
  -rwxr-xr-x root     shell      233632 2014-12-11 18:32 toybox

Change-Id: I6b150f195dd9f803ddce58a89aa7c23a5b930e5b
parent da4f30c5
Loading
Loading
Loading
Loading
+0 −4
Original line number Original line Diff line number Diff line
@@ -128,7 +128,6 @@ OUR_TOOLS := \
    log \
    log \
    ls \
    ls \
    lsof \
    lsof \
    md5 \
    mkdir \
    mkdir \
    mount \
    mount \
    nandread \
    nandread \
@@ -170,10 +169,7 @@ LOCAL_SRC_FILES := \


LOCAL_CFLAGS += $(common_cflags)
LOCAL_CFLAGS += $(common_cflags)


LOCAL_C_INCLUDES += external/openssl/include

LOCAL_SHARED_LIBRARIES := \
LOCAL_SHARED_LIBRARIES := \
    libcrypto \
    libcutils \
    libcutils \
    libselinux \
    libselinux \


toolbox/md5.c

deleted100644 → 0
+0 −71
Original line number Original line Diff line number Diff line
#include <errno.h>
#include <fcntl.h>
#include <stdio.h>
#include <unistd.h>
#include <sys/stat.h>
#include <sys/types.h>
#include <openssl/md5.h>

static int usage()
{
    fprintf(stderr,"md5 file ...\n");
    return -1;
}

static int do_md5(const char *path)
{
    unsigned int i;
    int fd;
    MD5_CTX md5_ctx;
    unsigned char md5[MD5_DIGEST_LENGTH];

    fd = open(path, O_RDONLY);
    if (fd < 0) {
        fprintf(stderr,"could not open %s, %s\n", path, strerror(errno));
        return -1;
    }

    MD5_Init(&md5_ctx);

    while (1) {
        char buf[4096];
        ssize_t rlen;
        rlen = read(fd, buf, sizeof(buf));
        if (rlen == 0)
            break;
        else if (rlen < 0) {
            (void)close(fd);
            fprintf(stderr,"could not read %s, %s\n", path, strerror(errno));
            return -1;
        }
        MD5_Update(&md5_ctx, buf, rlen);
    }
    if (close(fd)) {
        fprintf(stderr,"could not close %s, %s\n", path, strerror(errno));
        return -1;
    }

    MD5_Final(md5, &md5_ctx);

    for (i = 0; i < (int)sizeof(md5); i++)
        printf("%02x", md5[i]);
    printf("  %s\n", path);

    return 0;
}

int md5_main(int argc, char *argv[])
{
    int i, ret = 0;

    if (argc < 2)
        return usage();

    /* loop over the file args */
    for (i = 1; i < argc; i++) {
        if (do_md5(argv[i]))
            ret = 1;
    }

    return ret;
}