How to run OpenSSL commands in a step?

Hello,
I have tried importing several NPM packages into a Node.js step.
At best, I get the following error “spawn openssl ENOENT” which I understand that OpenSSL is not in the $PATH variable.

How can I solve this?

Hello @ironalloy.info,

I think you can install Open SSL into your workflow execution environment using a Bash code step.

Note that Pipedream run your whole workflow in AWS Lambda environment, hence, some npm package will not compatible (.e.g pupeteer)

Hello @vunguyenhung,
I get “openssl: command not found” in a Bash code step.

Can Pipedream support add OpenSSL to the Bash and Node.js code steps?

Or, maybe, there is a different way to get OpenSSL run in a code step?

Hello @ironalloy.info,

May I ask which npm package you’re trying to install?

I have tried using any of the OpenSSL packages that are available on NPM, using the following query:

I have tried 4-5 packages and either they did not run at all, or they returned the “ENOENT” error message.

I kind of like “openssl-nodes” package as its syntax is very similar to a terminal command.
Or “openssl-wrapper” that is more nested commands kind of thing.

Hi @ironalloy.info,

May I ask why do you need the OpenSSL package?

The reason I asked is that maybe Pipedream can add a native action for you to connect to the app you want, instead of you using the code step. Another option is Pipedream to add the Open SSL library to the execution environment, but it might be more complicated.

Hi @vunguyenhung,
I want to use the “openssl ts” command to digitally timestamp a file in this specific scenario:

  1. Get the original file to digitally timestamp
  2. Use the “openssl ts” command and generate a TSQ (Timestamp signing request) file
  3. Send the TSQ to a TSA (Timestamp Server Authority) to sign the request and receive a TSR (Timestamp signing response)
  4. Save the original and response files together

When it is time to validate:

  1. Generate a new TSQ from the questionable original file
  2. Use the “openssl ts” command to validate that the new TSQ is identical to the signed TSQ generated in the section above
  3. In case of a match, then the questionable original file is unaltered since the signing
  4. Otherwise, the questionable original file differs, and its contents cannot be trusted

Does this explanation help?


When you write “add a native action,” do you mean to add OpenSSL as a component?

Hi @ironalloy.info,

Yes your explanation is definitely help!

Yeah something like that. I’ve added a ticket here for Pipedream team to evaluate this usecase: [FEATURE] Preinstall OpenSSL to Pipedream workflow execution environment · Issue #5986 · PipedreamHQ/pipedream · GitHub. You can subscribe to the ticket to get noticed when it’s updated

Thank you.