71 citations · 289 across the 25 of their papers we have counts for
31 papers
DeCo: A Core Calculus for Incremental Functional Programming with Generic Data Types
Timon Böhler, Tobias Reinhard, David Richter +1
Incrementalization speeds up computations by avoiding unnecessary recomputations and by efficiently reusing previous results. While domain-specific techniques achieve impressive sp…
Using Rewrite Strategies for Efficient Functional Automatic Differentiation
Timon Böhler, David Richter, Mira Mezini
Automatic Differentiation (AD) has become a dominant technique in ML. AD frameworks have first been implemented for imperative languages using tapes. Meanwhile, functional implemen…
UNGOML: Automated Classification of unsafe Usages in Go
Anna-Katharina Wickert, Clemens Damke, Lars Baumgärtner +2
The Go programming language offers strong protection from memory corruption. As an escape hatch of these protections, it provides the unsafe package. Previous studies identified th…
Towards Code Generation from BDD Test Case Specifications: A Vision
Leon Chemnitz, David Reichenbach, Hani Aldebes +3
Automatic code generation has recently attracted large attention and is becoming more significant to the software development process. Solutions based on Machine Learning and Artif…
LoRe: A Programming Model for Verifiably Safe Local-First Software
Julian Haas, Ragnar Mogk, Elena Yanakieva +2
Local-first software manages and processes private data locally while still enabling collaboration between multiple parties connected via partially unreliable networks. Such softwa…
To Fix or Not to Fix: A Critical Study of Crypto-misuses in the Wild
Anna-Katharina Wickert, Lars Baumgärtner, Michael Schlichtig +2
Recent studies have revealed that 87 % to 96 % of the Android apps using cryptographic APIs have a misuse which may cause security vulnerabilities. As previous studies did not cond…
Dependently-Typed Data Plane Programming
Matthias Eichholz, Eric Hayden Campbell, Matthias Krebs +2
Programming languages like P4 enable specifying the behavior of network data planes in software. However, with increasingly powerful and complex applications running in the network…
Prisma: A Tierless Language for Enforcing Contract-Client Protocols in Decentralized Applications (Extended Version)
David Richter, David Kretzler, Pascal Weisenburger +3
Decentralized applications (dApps) consist of smart contracts that run on blockchains and clients that model collaborating parties. dApps are used to model financial and legal busi…
CamBench -- Cryptographic API Misuse Detection Tool Benchmark Suite
Michael Schlichtig, Anna-Katharina Wickert, Stefan Krüger +2
Context: Cryptographic APIs are often misused in real-world applications. Therefore, many cryptographic API misuse detection tools have been introduced. However, there exists no es…
Python Crypto Misuses in the Wild
Anna-Katharina Wickert, Lars Baumgärtner, Florian Breitfelder +1
Background: Previous studies have shown that up to 99.59 % of the Java apps using crypto APIs misuse the API at least once. However, these studies have been conducted on Java and C…
Fex: Assisted Identification of Domain Features from C Programs
Patrick Müller, Krishna Narasimhan, Mira Mezini
Modern software typically performs more than one functionality. These functionalities or features are not always organized in a way for modules representing these features to be us…
Dealing with Variability in API Misuse Specification
Rodrigo Bonifacio, Stefan Krüger, Krishna Narasimhan +2
APIs are the primary mechanism for developers to gain access to externally defined services and tools. However, previous research has revealed API misuses that violate the contract…
Uncovering the Hidden Dangers: Finding Unsafe Go Code in the Wild
Johannes Lauinger, Lars Baumgärtner, Anna-Katharina Wickert +1
The Go programming language aims to provide memory and thread safety through measures such as automated memory management with garbage collection and a strict type system. However,…
Modular Collaborative Program Analysis in OPAL
Dominik Helm, Florian Kübler, Michael Reif +2
Current approaches combining multiple static analyses deriving different, independent properties focus either on modularity or performance. Whereas declarative approaches facilitat…
ReactiFi: Reactive Programming of Wi-Fi Firmware on Mobile Devices
Artur Sterz, Matthias Eichholz, Ragnar Mogk +5
Network programmability will be required to handle future increased network traffic and constantly changing application needs. However, there is currently no way of using a high-le…
Mind the GAP: Security & Privacy Risks of Contact Tracing Apps
Lars Baumgärtner, Alexandra Dmitrienko, Bernd Freisleben +14
Google and Apple have jointly provided an API for exposure notification in order to implement decentralized contract tracing apps using Bluetooth Low Energy, the so-called "Google/…
Hidden in Plain Sight: Obfuscated Strings Threatening Your Privacy
Leonid Glanz, Patrick Müller, Lars Baumgärtner +4
String obfuscation is an established technique used by proprietary, closed-source applications to protect intellectual property. Furthermore, it is also frequently used to hide spy…
DTN7: An Open-Source Disruption-tolerant Networking Implementation of Bundle Protocol 7
Alvar Penning, Lars Baumgärtner, Jonas Höchst +3
In disruption-tolerant networking (DTN), data is transmitted in a store-carry-forward fashion from network node to network node. In this paper, we present an open source DTN implem…
Smart Street Lights and Mobile Citizen Apps for Resilient Communication in a Digital City
Lars Baumgärtner, Jonas Höchst, Patrick Lampe +5
Currently, nearly four billion people live in urban areas. Since this trend is increasing, natural disasters or terrorist attacks in such areas affect an increasing number of peopl…
Type-safe, Polyvariadic Event Correlation
Oliver Bračevac, Guido Salvaneschi, Sebastian Erdweg +1
The pivotal role that event correlation technology plays in todays applications has lead to the emergence of different families of event correlation approaches with a multitude of…
How to Avoid Making a Billion-Dollar Mistake: Type-Safe Data Plane Programming with SafeP4
Matthias Eichholz, Eric Campbell, Nate Foster +2
The P4 programming language offers high-level, declarative abstractions that bring the flexibility of software to the domain of networking. Unfortunately, the main abstraction used…
Comprehensive Multiparty Session Types
Andi Bejleri, Elton Domnori, Malte Viering +2
Multiparty session types (MST) are a well-established type theory that describes the interactive structure of a fixed number of components from a global point of view and type-chec…
A Systematic Evaluation of Static API-Misuse Detectors
Sven Amann, Hoan Anh Nguyen, Sarah Nadi +2
Application Programming Interfaces (APIs) often have usage constraints, such as restrictions on call order or call conditions. API misuses, i.e., violations of these constraints, m…
CrySL: Validating Correct Usage of Cryptographic APIs
Stefan Krüger, Johannes Späth, Karim Ali +2
Various studies have empirically shown that the majority of Java and Android apps misuse cryptographic libraries, causing devastating breaches of data security. Therefore, it is cr…