05 Fakultät Informatik, Elektrotechnik und Informationstechnik
Permanent URI for this collectionhttps://elib.uni-stuttgart.de/handle/11682/6
Browse
2 results
Search Results
Item Open Access Classification of cryptographic libraries(2017) Poppele, Andreas; Eichler, Rebecca; Jäger, RolandSoftware developers today are faced with choosing cryptographic libraries in order to implement security concepts. There is a large variety of cryptographic libraries for diverse programming languages, without there being a standardized conception of different properties of these cryptographic libraries. This report provides a classification of over 700 cryptographic libraries. The libraries were chosen pertaining to currentness and popularity. In order to provide a standardized overview the most important traits and characteristics of these libraries were gathered and defined. Data collection on these characteristics was performed in a manual as well as automated fashion. The classification contains information that will help experienced and inexperienced developers in the cryptographic field to choose a library that fits their abilities. Furthermore, it may be used as a basis for studies concerning any form of improvement of these libraries and many more.Item Open Access Typesafe parallel serialization with SKilL/Rust(2018) Jäger, RolandThe goal of this thesis is to provide a generator for SKilL that targets Rust. Since Rusts type system enforces strict rules to offer guaranteed thread safety the generated binding has to accommodate these rules, which makes it difficult to create a graph with cycles. A lot of the effort goes into the research and creation of solutions for the missing inheritance between structs and the resulting missing casting functionality in the language. In conjunction an option has to be found that allows Rusts rules to be enforced at runtime that works with the enhanced inheritance support. Peculiarly, the resulting implementation is not able to benefit from Rusts rules in regard to safe parallelism, as the runtime enforcement of these rules inhibits parallelism. To validate that the implementation works as expected pre-existing functional tests are used. Additionally performance tests are executed to see how Rust bindings fare against a reference implementation in C++.