]> git.zerfleddert.de Git - proxmark3-svn/blobdiff - armsrc/string.c
Upgrade crapto1 library to v3.3 (#232)
[proxmark3-svn] / armsrc / string.c
index a3d3c04956c8b91700334d533dce443ab0bb9d18..945a4cf6d0dae98a8d58c513120673e57f5735f4 100644 (file)
@@ -1,4 +1,13 @@
-/* Implementations of the common string.h functions */
+//-----------------------------------------------------------------------------
+// Jonathan Westhues, Sept 2005
+//
+// This code is licensed to you under the terms of the GNU GPL, version 2 or,
+// at your option, any later version. See the LICENSE.txt file for the text of
+// the license.
+//-----------------------------------------------------------------------------
+// Common string.h functions
+//-----------------------------------------------------------------------------
+
 #include "string.h"
 #include <stdint.h>
 
@@ -39,6 +48,11 @@ int memcmp(const void *av, const void *bv, int len)
        return 0;
 }
 
+void memxor(uint8_t * dest, uint8_t * src, size_t len) {
+   for( ; len > 0; len--,dest++,src++)
+       *dest ^= *src;
+}
+
 int strlen(const char *str)
 {
        int l = 0;
@@ -60,3 +74,47 @@ char* strncat(char *dest, const char *src, unsigned int n)
 
        return dest;
 }
+
+char* strcat(char *dest, const char *src)
+{
+       unsigned int dest_len = strlen(dest);
+       unsigned int i;
+
+       for (i = 0 ; src[i] != '\0' ; i++)
+               dest[dest_len + i] = src[i];
+       dest[dest_len + i] = '\0';
+
+       return dest;
+}
+////////////////////////////////////////// code to do 'itoa'
+
+/* reverse:  reverse string s in place */
+void strreverse(char s[])
+{
+    int c, i, j;
+
+    for (i = 0, j = strlen(s)-1; i<j; i++, j--) {
+        c = s[i];
+        s[i] = s[j];
+        s[j] = c;
+    }
+}
+
+/* itoa:  convert n to characters in s */
+void itoa(int n, char s[])
+{
+    int i, sign;
+
+    if ((sign = n) < 0)  /* record sign */
+        n = -n;          /* make n positive */
+    i = 0;
+    do {       /* generate digits in reverse order */
+        s[i++] = n % 10 + '0';   /* get next digit */
+    } while ((n /= 10) > 0);     /* delete it */
+    if (sign < 0)
+        s[i++] = '-';
+    s[i] = '\0';
+    strreverse(s);
+}
+
+//////////////////////////////////////// END 'itoa' CODE
Impressum, Datenschutz