The New Standard for Security and Reliability
Our protocol libraries are an easy way to add Modbus, DNP3, and ICCP to your applications in Rust, C/C++, .NET, and Java.
Our expertise in electric power, security, and software engineering delivers results for our clients. Let us help you get your project off to a good start.
We contribute to a number of open source projects both within and outside the industry. Our products are openly available for evaluation.
We participate in research and standardization efforts to help the industry select technologies that will have a lasting impact on reliability and security.
Aegis is a protocol aware smart fuzzer. We use Aegis to test our libraries; we also license it for testing 3rd party implementations of protocols. Aegis models the protocol under test, generating large numbers of intelligently malformed test cases.Read More
We have deep experience in electric power, software engineering, and software security. We can provide subject matter expertise or contract to implement portions of your product or platform. We actively work with clients using Rust, C/C++, Java, and .NET on a routine basis.Read More
Have any questions for us?
Reach out to inquire about our products or to scope a services engagement with our team. We can structure most projects on a T&M or fixed-price basis to meet your needs.
Latest News & Articles
We love to blog about industry trends and software engineering. Check back often for new posts, or follow us on social media.
OpenDNP3 was released as open source over 10 years ago. This post describes where I believe the project has succeeded, where it hasn’t, and why Step Function I/O is using a different licensing model for our new libraries going forward. In many ways, OpenDNP3 has been a success. We are constantly learning of new companies that have successfully used the library to add DNP3 functionality to their product or service offering.Read More
S4x20 hosted the Pwn2Own Miami hacking competition this year, and one of the more interesting and impactful results was a bug chain leading to remote code execution (RCE) in the Triangle Microworks (TMW) SCADA Data Gateway. The Zero Day Initiative who puts on these competitions recently released a detailed writeup (and video) of the bugs and the exploit. Achieving code execution on the Triangle MicroWorks SCADA Data Gateway - details (and video!Read More
When we made the decision to write our next generation of libraries in Rust, we knew we needed a solid approach for binding them to other languages. It may be some time before we have customers purchasing our libraries to use them in a Rust-only codebase. The majority of our customers will want to use the libraries in C/C++, .NET, or Java. Writing the core implementation in Rust means more productivity, fewer errors, and certain safety guarantees compared to writing it in C++.Read More
What Others Are Saying
Don't just take it from us. Ask around. We've been working on software and security projects in electric power for over a decade.
"Adam is consistently leading the field on design and testing of industrial protocols and the latest development tool set innovations. Tech from Step Function I/O is a smart bet."
Bryan Owen, Security Architect, OSIsoft LLC
"Adam and the experts at Step Function I/O are more than just leaders in the industrial reliability and security space, they are renowned practitioners."
Ronnie Fabela, Co-Founder, SynSaber
“At EPRI, we have built a number of protocol drivers and device simulators for DER applications that use the OpenDNP3 library. We are very impressed by the high-quality library and documentation.”
Jithendar Anandan, Smart Grid Developer, EPRI