Open Source Telephony
 help / color / mirror / Atom feed
From: Denis Kenzior <denkenz@gmail.com>
To: ofono@ofono.org
Subject: Re: [PATCHv2 11/11] doc: documentation for SimAuth dbus interfaces
Date: Wed, 11 Oct 2017 10:57:15 -0500	[thread overview]
Message-ID: <515bc63f-eccf-dee6-fa7b-ced58287fc26@gmail.com> (raw)
In-Reply-To: <1507671380-7625-11-git-send-email-james.prestwood@linux.intel.com>

[-- Attachment #1: Type: text/plain, Size: 4449 bytes --]

Hi James,

On 10/10/2017 04:36 PM, James Prestwood wrote:
> ---
>   doc/sim-auth-api.txt | 78 ++++++++++++++++++++++++++++++++++++++++++++++++++++
>   1 file changed, 78 insertions(+)
>   create mode 100644 doc/sim-auth-api.txt
> 
> diff --git a/doc/sim-auth-api.txt b/doc/sim-auth-api.txt
> new file mode 100644
> index 0000000..089a325
> --- /dev/null
> +++ b/doc/sim-auth-api.txt
> @@ -0,0 +1,78 @@
> +SimAuth authentication heiarchy [experimental]

SimAuthentication hierarchy

> +===========================================
> +
> +Service		org.ofono
> +Interface	org.ofono.SimAuthentication
> +Object path	[variable prefix]/{modem0,modem1,...}
> +
> +Methods		array{object,dict} GetProperties()
> +
> +			Returns properties for SimAuthentication interface.
> +
> +Properties	array{object,dict} applications [readonly]

Actually lets not implement this as a property.  instead use 
array{object, dict} GetApplications().  This will be consistent with 
Manager.GetModems,  VoicecallManager.GetCalls, 
NetworkRegistration.GetOperators(), etc

> +
> +			Array of all SIM applications found during discovery.
> +			In the format "{o(ss)}" where 'o' is the object

This is inconsistent with how we generally handle this.  Usually the 
signature is a{oa{sv}}

o -> object path
a{sv} -> properties of the individual object

so a{sv} would contain
Name, 's' value inside the variant
Type, 's' value inside the variant

Look at how the GetFoo() methods above handle this.

> +			path for the application, 's' is the type, and 's'
> +			is the human readable name e.g.
> +
> +			o = "/modem1/A0000000871004FFFFFFFF8906190000"
> +			s = "Ims"
> +			s = "ISim"
> +
> +			For each application there will be a corresponding
> +			object that matches the path (o). The type will
> +			signify which interfaces are under that object (below).
> +
> +			type = Umts --> org.ofono.USimApplication
> +			type = Ims  --> org.ofono.ISimApplication
> +
> +SimAuth USIM application heiarchy [experimental]
> +===========================================
> +
> +Service		org.ofono
> +Interface	org.ofono.USimApplication
> +Object path	[variable prefix]/{modem0,modem1,...}/{AID name}
> +
> +Methods		array{string, dict} GsmAuthenticate(array{array{byte}} rands)
> +
> +			Run the USIM application GSM AUTHENTICATE algorithm
> +			with N random challenges 'rands'. This should be an
> +			array of an array of bytes ("aay").

Do you want to mention here that the array can be / should be of size n, 
where n = 2 or 3?

> +
> +			Returns the derived Kc/SRES values as an array of
> +			dictionaries. The index of each dictionary matches
> +			the index of the rand value in the method call. The
> +			keys for each dictionary are "kc" and "sres" and both
> +			are arrays of bytes.

Just a minor nitpick, but if the spec uses a particular capitalization 
for Kc/SRES, then use that as the dictionary key.  It is likely easier 
for readability and we are not limited to small caps.

> +
> +			Possible Errors:
> +				[service].Error.NotSupported
> +				[service].Error.Busy
> +
> +		dict UmtsAuthenticate(array{byte} rand, array{byte} autn)
> +
> +			Run the UMTS AUTHENTICATE algorithm in the 3G
> +			context with 'rand' and 'autn'. A dictionary will be
> +			returned containing 'res', 'ck', 'ik' and possibly
> +			'kc' if service 27 is available. If there was a
> +			sync error 'auts' will be returned.
> +
> +			Possible Errors: [service].Error.NotSupported

Just for API consistency, lets also add GetProperties() with 'Type' and 
'Name' as read-only properties.

> +
> +SimAuth ISIM application heiarchy [experimental]
> +===========================================
> +
> +Service		org.ofono
> +Interface	org.ofono.ISimApplication
> +Object		[variable prefix]/{modem0,modem1,...}/{AID name}
> +
> +Methods		dict ImsAuthenticate(array{byte} rand, array{byte} autn)
> +
> +			Run the UMTS AUTHENTICATE algorithm in the IMS
> +			context with 'rand' and 'autn'. A dictionary will be
> +			returned containing 'res', 'ck', 'ik' and possibly
> +			'kc' if service 27 is available. If there was a
> +			sync error 'auts' will be returned.

Same comments about capitalization of the dict keys as above

> +
> +			Possible Errors: [service].Error.NotSupported
> 

Add GetProperties() with 'Type' and 'Name' as read-only

Regards,
-Denis

  reply	other threads:[~2017-10-11 15:57 UTC|newest]

Thread overview: 16+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-10-10 21:36 [PATCHv2 01/11] simutil: Added app type to application parser James Prestwood
2017-10-10 21:36 ` [PATCHv2 02/11] simutil: Added authenticate builder/parser API James Prestwood
2017-10-11 15:30   ` Denis Kenzior
2017-10-10 21:36 ` [PATCHv2 03/11] unit: add gsm and umts parse/build unit tests James Prestwood
2017-10-10 21:36 ` [PATCHv2 04/11] sim: new API to check for a UST service only James Prestwood
2017-10-11 15:34   ` Denis Kenzior
2017-10-10 21:36 ` [PATCHv2 05/11] sim-auth: prep simauth/dbus headers James Prestwood
2017-10-11 15:39   ` Denis Kenzior
2017-10-10 21:36 ` [PATCHv2 06/11] sim-auth: implementation of core sim-auth atom James Prestwood
2017-10-10 21:36 ` [PATCHv2 07/11] atmodem: implemented sim-auth functionality in atmodem James Prestwood
2017-10-10 21:36 ` [PATCHv2 08/11] xmm7xxx: add sim-auth driver to xmm7xxx plugin James Prestwood
2017-10-10 21:36 ` [PATCHv2 09/11] phonesim: Added sim-auth to phonesim plugin James Prestwood
2017-10-10 21:36 ` [PATCHv2 10/11] test: added tests for GSM/UMTS auth algorithms James Prestwood
2017-10-10 21:36 ` [PATCHv2 11/11] doc: documentation for SimAuth dbus interfaces James Prestwood
2017-10-11 15:57   ` Denis Kenzior [this message]
2017-10-11 15:29 ` [PATCHv2 01/11] simutil: Added app type to application parser Denis Kenzior

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=515bc63f-eccf-dee6-fa7b-ced58287fc26@gmail.com \
    --to=denkenz@gmail.com \
    --cc=ofono@ofono.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox