EPICS Home

Experimental Physics and Industrial Control System


 
1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  <20242025  Index 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  <20242025 
<== Date ==> <== Thread ==>

Subject: RE: Storing passwords in records/Authenticating IOC with other servers
From: Freddie Akeroyd - STFC UKRI via Tech-talk <tech-talk at aps.anl.gov>
To: 'Marco Filho' <marco.filho at ess.eu>, "tech-talk at aps.anl.gov" <tech-talk at aps.anl.gov>
Date: Fri, 19 Jul 2024 15:23:01 +0000

Hi, does something like

 

record(stringout, "MY_RECORD")

{

    field(DTYP, "asynOctetWrite")

    field(OUT, "@asyn( … )")

    field(FLNK, "MY_RECORD_RESET")

}

 

record(stringout, "MY_RECORD_RESET")

{

    field(VAL, "")

    field(OUT, "MY_RECORD NPP")

}

 

Work? The linked “MY_RECORD NPP” should clear the initial record value without processing it again (so not sending a blank password to asyn)

 

Regards,

 

Freddie

 

From: Tech-talk <tech-talk-bounces at aps.anl.gov> On Behalf Of Marco Filho via Tech-talk
Sent: Friday, July 19, 2024 3:55 PM
To: tech-talk at aps.anl.gov
Subject: Storing passwords in records/Authenticating IOC with other servers

 

Hi, all

I am creating an epics ADDriver that needs to communicate and authenticate with another server. The authentication requires a password and a username.
Since I want everything to be as dynamic as possible, I wanted to create a record to use the password to authenticate, but I don't feel comfortable only protecting the record with ASG because it feels like a thin layer of protection.

I tried making an asynOctetWrite record that passes a value to MYDriver::writeOctet() without storing the value passed. In other words: something that would behave like:

caput MY_RECORD PASS
(Function MYDriver::writeOctet gets called with PASS passed as an argument to the function)
caget MY_RECORD
MY_RECORD                          #Shows nothing, nothing is actually stored in the record.

But I could not succeed in making this record only with asyn. The best solution I can think of now is reading the password from a file which again doesn't seem like the optimal solution.

This is probably not a too specific problem, so I'm wondering if there is already any elegant solution for that? Can anyone think of a better approach? Or maybe an already-existing record that does something similar?

Thanks for any suggestions,

Marco


Replies:
Re: Storing passwords in records/Authenticating IOC with other servers Yendell, Gary (DLSLtd, RAL, LSCI) via Tech-talk
References:
Storing passwords in records/Authenticating IOC with other servers Marco Filho via Tech-talk

Navigate by Date:
Prev: Storing passwords in records/Authenticating IOC with other servers Marco Filho via Tech-talk
Next: Re: Storing passwords in records/Authenticating IOC with other servers Yendell, Gary (DLSLtd, RAL, LSCI) via Tech-talk
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  <20242025 
Navigate by Thread:
Prev: Storing passwords in records/Authenticating IOC with other servers Marco Filho via Tech-talk
Next: Re: Storing passwords in records/Authenticating IOC with other servers Yendell, Gary (DLSLtd, RAL, LSCI) via Tech-talk
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  <20242025