strsep implementation to allow the file to compile on non-BSD systems
authorUlf Möller <ulf@openssl.org>
Tue, 4 Sep 2001 22:19:06 +0000 (22:19 +0000)
committerUlf Möller <ulf@openssl.org>
Tue, 4 Sep 2001 22:19:06 +0000 (22:19 +0000)
Submitted by: "Brian Havard" <brianh@kheldar.apana.org.au>

crypto/evp/evp_test.c

index 1fdc9976190edcdf3aa7e9deca97d52adea626b5..df02ea6047861a72031074a933923d067b97b9aa 100644 (file)
@@ -85,8 +85,39 @@ static int convert(unsigned char *s)
     return s-d;
     }
 
+static char *sstrsep(char **string, const char *delim)
+    {
+    char isdelim[256];
+    char *token = *string;
+
+    if (**string == 0)
+        return NULL;
+
+    memset(isdelim, 0, 256);
+    isdelim[0] = 1;
+
+    while (*delim)
+        {
+        isdelim[(unsigned char)(*delim)] = 1;
+        delim++;
+        }
+
+    while (!isdelim[(unsigned char)(**string)])
+        {
+        (*string)++;
+        }
+
+    if (**string)
+        {
+        **string = 0;
+        (*string)++;
+        }
+
+    return token;
+    }
+
 static unsigned char *ustrsep(char **p,const char *sep)
-    { return (unsigned char *)strsep((char **)p,sep); }
+    { return (unsigned char *)sstrsep((char **)p,sep); }
 
 static void test1(const EVP_CIPHER *c,const unsigned char *key,int kn,
                  const unsigned char *iv,int in,
@@ -297,7 +328,7 @@ int main(int argc,char **argv)
        if(line[0] == '#' || line[0] == '\n')
            continue;
        p=line;
-       cipher=strsep(&p,":");  
+       cipher=sstrsep(&p,":"); 
        key=ustrsep(&p,":");
        iv=ustrsep(&p,":");
        plaintext=ustrsep(&p,":");