Carl,

 

Thanks for your reply.  I would love to have a service which I could
call, unfortunately my Windows development skills don't stretch that far
as I am an infrastructure person with some basic VBscripting skills.

 

Do you (or another member of this list as CC'ed) have something that
could be used for this purpose?  

 

Below are my requirements:

1.       I do actually need to call SOMETHING from the command line and
use STDIN and STDOUT as that is all my windows application supports

2.       I would suggest that I call a small wrapper application with
the text to be encrypted and the key as STDIN, which then messages a
running service with the required text and key, receives back the
encrypted text, then passes this back to the command line as STDOUT

3.       The wrapper application would need to be written to be
completely self-contained and lightweight.  Using a Windows SDK would
likely incur similar startup issues, so it might need to be written in C
or something similar which is fully linked

 

Another option - could Openssl.exe be made to store it's entropy
information in a file or registry location which could be read in every
time rather than recreated?  Is this information different every time?
I don't really need randomness  or salt as I am using it only for
symmetric encryption which is the same every time.  The far end (a third
party) for the data synchronisation only supports symmetric encryption
and no salt.

 

Thanks and Regards,

 

Leon

 

 

 

From: Carl Young [mailto:carlyo...@keycomm.co.uk] 
Sent: Tuesday, November 13, 2012 4:00 PM
To: Funnell, Leon
Subject: RE: How can I pass data to a running instance of OpenSSL CLI on
Windows within a batch file?

 

Sorry - I meant to add "my reply was either discarded from the group
list or is still waiting for an OK"

 

Carl

________________________________

From: Carl Young
Sent: 13 November 2012 15:59
To: leon.funn...@catlin.com
Subject: FW: How can I pass data to a running instance of OpenSSL CLI on
Windows within a batch file?

 

________________________________

From: Carl Young
Sent: 12 November 2012 11:43
To: openssl-users@openssl.org
Subject: RE: How can I pass data to a running instance of OpenSSL CLI on
Windows within a batch file?

Do have really have to use OpenSSL.exe or could you create/use a
modified version of that tool that does exactly what you expect?

 

Your "scaling" problem is because of the entropy gathering each time
OpenSSL is launched. This takes a significant amount of time, especially
compared to the actual encryption operation. I would think that creating
a service process that responded to a CLI client tool would be more
efficacious than trying to scrape the OpenSSL output, but that's just my
opinion. Without knowing your exact restrictions, it's hard to suggest
what to do.

 

If you don't want the overhead of installing services, and everything
will be run from the same window session, you could have the first
instance of your process register a global object and stay resident
waiting for LRPC calls from secondary instances (or even use files and
events - whatever floats your boat).

 

Carl

 

________________________________

From: owner-openssl-us...@openssl.org [owner-openssl-us...@openssl.org]
on behalf of Funnell, Leon [leon.funn...@catlin.com]
Sent: 12 November 2012 11:18
To: openssl-users@openssl.org
Subject: RE: How can I pass data to a running instance of OpenSSL CLI on
Windows within a batch file?

Got it working (almost) in vbscript.  I have the following problem
however:

 

If I run Openssl.exe on it's own waiting for input, I can tell it to do
one encryption only.  See the steps I have followed below:

1.       In Windows, run CMD.exe

2.       Cd to C:\OpenSSL-Win64\bin

3.       Invoke openssl.exe

4.       Type "aes-256-cbc -a -e -K
656963636D6B6A6439346A66676E697730336C6A6B646C667574636E76333230 -iv 0"

5.       Enter text "12345678" and press Enter

6.       Press Ctrl-Z and enter

7.       Press Ctrl-Z and enter

8.       Outputs "6+gAsG2gj13Jsvujnfyasg==" - this is the encrypted
value of "12345678<CR>" - need this without <CR>

9.       If I the type "aes-256-cbc -a -e -K
656963636D6B6A6439346A66676E697730336C6A6B646C667574636E76333230 -iv 0"
a second time, I get "non-hex digit, invalid hex iv value, error in
aes-256-cbc"

10.   Then there is no way to exit openssl except pressing CTRL-C

 

If I follow the same above process in vbscript using oExec.StdIn.Write,
I can get it to work without the <CR>, as it seems to understand the EOT
(character 26) marker on the end of the line.  The problem is, it
returns to the Openssl> prompt, but again wont work a following time due
to the error "non-hex digit, invalid hex iv value, error in aes-256-cbc"

 

Any ideas?  This looks like a bug with the CLI, unless you need to
change the syntax second time round.

 

Leon

 

 

 

From: owner-openssl-us...@openssl.org
[mailto:owner-openssl-us...@openssl.org] On Behalf Of Charles Mills
Sent: Tuesday, October 23, 2012 12:12 AM
To: openssl-users@openssl.org; openssl-users@openssl.org
Subject: RE: How can I pass data to a running instance of OpenSSL CLI on
Windows within a batch file?

 

Msdn.com is excellent. Good advice, few flames. 
-- 
Sent from my mobile phone. Please excuse my brevity.

Charles 

Jeremy Farrell <jeremy.farr...@oracle.com> wrote:

If you start openssl.exe, that's the mode it's in by default - waiting
for commands from stdin, writing the output from those commands to
stdout. Isn't that what you're looking for?

 

If you're looking for advice on the programming details of attaching to
its stdin and stdout and sending/receiving that data from another
program, you'd probably be better asking on a general Windows
programming list where there'll be more people with that sort of
expertise.

 

Regards,

                          jjf

 

From: Funnell, Leon [mailto:leon.funn...@catlin.com] 
Sent: Monday, October 22, 2012 10:52 AM
To: openssl-users@openssl.org
Subject: How can I pass data to a running instance of OpenSSL CLI on
Windows within a batch file?

 

We have Windows application which passes data to OpenSSL.exe to encrypt
as a Windows command, then scrapes the encrypted data back from the
output.  The Windows app can call external Windows commands but we
cannot call APIs or extend the functionality programmatically.
Functionally it works, but it doesn't scale as each time you call
OpenSSL.exe it takes about a second and spikes the CPU.  The application
we are using is required to process 6000 records every hour.  

 

I have two tests set up:

1.       A batch file which runs 6000 times, repeatedly running the
following command:

Openssl.exe aes-256-cbc -a -e -k eiccmkjd94jfgniw03ljkdlfutcnv320 -in
test.txt

 

2.       A text file with the following line repeated 6000 times, which
I paste into the OpenSSL CLI:

aes-256-cbc -a -e -k eiccmkjd94jfgniw03ljkdlfutcnv320 -in test.txt

 

When I use the batch file which invokes OpenSSL.exe 6000 times, it takes
several hours to complete and spikes the CPU significantly.  It seems to
be the initialisation of the OpenSSL.exe program rather than the
encryption however, as if I paste in the text file to the OpenSSL.exe
CLI it completes in several seconds and takes very little CPU.

 

What I need is a way of running OpenSSL.exe as a process which I can
pass parameters to on STDIN, and output parameters to STDOUT.  I would
like to be able to call another batch file or program with the
unencrypted data as the input parameter which would then pass this to
the running "service", retrieve the  encrypted data result from this
"service" and pass it as the output.

 

Can anyone enlighten me on a potential solution for this?

 

Thanks and Regards,

 

Leon Funnell


________________________________________________________
This e-mail is confidential and intended solely for the use of the
individual(s) to whom it is addressed. If you are not the intended
recipient, be advised that you have received this e-mail in error and
that any use, dissemination, forwarding, printing, copying of, or any
action taken in reliance upon it, is strictly prohibited and may be
illegal.

Catlin Underwriting Agencies Limited and Catlin Insurance Company (UK)
Ltd. are authorised and regulated by the Financial Services Authority.

The registered office of Catlin Underwriting Agencies Limited
(incorporated and registered in England and Wales with company number
1815126) and Catlin Insurance Company (UK) Ltd. (incorporated and
registered in England and Wales with company number 5328622) is 20
Gracechurch Street, London, EC3V 0BG.

Catlin Risk Solutions Limited is an Appointed Representative of Catlin
Underwriting Agencies Limited.
________________________________________________________


________________________________________________________
This e-mail is confidential and intended solely for the use of the
individual(s) to whom it is addressed. If you are not the intended
recipient, be advised that you have received this e-mail in error and
that any use, dissemination, forwarding, printing, copying of, or any
action taken in reliance upon it, is strictly prohibited and may be
illegal.

Catlin Underwriting Agencies Limited and Catlin Insurance Company (UK)
Ltd. are authorised and regulated by the Financial Services Authority.

The registered office of Catlin Underwriting Agencies Limited
(incorporated and registered in England and Wales with company number
1815126) and Catlin Insurance Company (UK) Ltd. (incorporated and
registered in England and Wales with company number 5328622) is 20
Gracechurch Street, London, EC3V 0BG.

Catlin Risk Solutions Limited is an Appointed Representative of Catlin
Underwriting Agencies Limited.
________________________________________________________


________________________________________________________
This e-mail is confidential and intended solely for the use of the 
individual(s) to whom it is addressed. If you are not the intended recipient, 
be advised that you have received this e-mail in error and that any use, 
dissemination, forwarding, printing, copying of, or any action taken in 
reliance upon it, is strictly prohibited and may be illegal.

Catlin Underwriting Agencies Limited and Catlin Insurance Company (UK) Ltd. are 
authorised and regulated by the Financial Services Authority.

The registered office of Catlin Underwriting Agencies Limited (incorporated and 
registered in England and Wales with company number 1815126) and Catlin 
Insurance Company (UK) Ltd. (incorporated and registered in England and Wales 
with company number 5328622) is 20 Gracechurch Street, London, EC3V 0BG.

Catlin Risk Solutions Limited is an Appointed Representative of Catlin 
Underwriting Agencies Limited.
________________________________________________________

Reply via email to