freenode/#lisp - IRC Chatlog
Search
10:52:19
jackdaniel
jimmyjoe: I've heard this "advice" over and over again from people involved with security: never write crypto library because it is hard (imo it is a dumb advice)
10:52:42
jimmyjoe
what about other interpreters like python,ruby,etc - these libraries claim to be secure, and widely used.
10:52:59
jackdaniel
but this attitude implies, that *any* crypto library written by a not enterprise is not secure (as if enterprise software were secure)
10:53:38
lieven
jimmyjoe: secure as an absolute is fairly meaningless. you need to specify use case, attack model etc
10:54:49
lieven
jimmyjoe: some of the more hardened libraries try to achieve input independent code paths to prevent power consumption measurement attacks etc
10:56:32
jackdaniel
if you refere to a recent post by Wimpie Nortje it explicitly talks about threading issues
11:03:28
akater
jimmyjoe: What I meant: If you want security, you generally do not want your program to enter a state not belonging to a (relatively) small set of specified, well-understood states.
11:03:34
akater
The idea of an interactive language with rich runtime goes against this. At the very least, the state space will tend to be as *large* as possible, contrary to what you'd want.
11:07:54
White_Flame
ruby etc call out to C libs to perform the crypto. they're not implemented in the interpreted langauge themselves
11:08:11
White_Flame
and as lieven mentioned, timing attacks and such are the primary concern with non-C written algos
11:08:34
White_Flame
those are written to ensure the same amount of CPU work happens regardless of path taken
11:09:24
akater
Would you say it's a bad idea to assign meaning to objects dependening on whether certain slots are unbound?
11:09:30
akater
E.g., (obj :slot nil) means one thing while (obj :slot #<unbound>) means something else, and is also considered a proper object.
20:38:42
drmeister
With Common Lisp CFFI - what is the idiomatic way to allocate an array of characters that I can pass a pointer to a function that will fill it with a zero terminated string. I know the maximum length of the zero-terminated string.
20:41:12
lacedaemon
with-foreign-string will allocate a Lisp string, copy it into C uselessly just so it can be overwritten
20:43:10
lacedaemon
with-foreign-pointer-as-string will do that, see the example in https://common-lisp.net/project/cffi/manual/html_node/with_002dforeign_002dpointer_002das_002dstring.html