Secure and Reliable

We build secure, reliable, and performant software for critical infrastructure. Learn more about our products and our unique approach to secure software engineering.

Products About Us

The New Standard for Security and Reliability

Products

Our protocol libraries are an easy way to add Modbus, DNP3, and ICCP to your applications in Rust, C/C++, .NET, and Java.

Services

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.

Community

We contribute to a number of open source projects both within and outside the industry. Our products are openly available for evaluation.

R&D

We participate in research and standardization efforts to help the industry select technologies that will have a lasting impact on reliability and security.

Protocol Libraries

Our libraries are written in safe Rust with bindings available for a number of other languages including C/C++, .NET, and Java. They offer both native performance and the security and reliability of a higher-level language.

Read More About Rust

Aegis Fuzzer

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

Expertise

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: Retrospective

OpenDNP3: Retrospective

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
CVE-2020-10611 - RCE in a flawed DNP3 Implementation

CVE-2020-10611 - RCE in a flawed DNP3 Implementation

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
Binding Rust to other languages safely and productively

Binding Rust to other languages safely and productively

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, VP of Field Operations, Gravwell Inc

“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