I'm trying to work out how to generate the parameters for iTunes Music Store (iTMS) and what they are/mean. So far I can do all the other normal stuff like login, view account information, but purchasing looks to have some cryptographic element to it (or simply something I'm not seeing).
For example, iTunes 9 when purchasing some random free app gives:
<?xml version="1.0" encoding="UTF-8"?>
<plist version="1.0">
<dict>
<key>guid</key>
<string>4225D067.2C503B42.0DE019C0.09C96165.C4AEA83B.2AFF3A27.37A7327A</string>
<key>kbsync</key>
<data>
AAEAAOuJNWEY3t2cfDs71eXYbxmcvyB/ZB8PABQSjnY0zvL9ofILWBGfLd4Z7HnI9s3Y
akaVt+3xOW9E9Arva1RLzfX5ONpclt5s2IW/rXOgDnX6/AmacJL4UbnvvLR7mUtKZVNh
aOlKGk7dNqMHnZUiIkLRSS+sOJ2KIR2OT6kZ02tlDYv/bmI9Zr5G2HUsG1TZRQ==
</data>
<key>machineName</key>
<string>MORPHEUS</string>
<key>needDiv</key>
<string>0</string>
<key>price</key>
<string>0</string>
<key>pricingParameters</key>
<string>SWUPD</string>
<key>productType</key>
<string>C</string>
<key>salableAdamId</key>
<string>314765784</string>
</dict>
</plist>
I understand that most of this comes from the action-params or buy-params (for this example it is productType=C&salableAdamId=314765784&pricingParameters=SWUPD&price=0&ct-id=14
), and the GUID is constant (for my machine), however I can't work out what the kbsync field is.
I was hoping someone would take one look and work it out quickly, but I haven't been able to.
Other info that it also might be based on:
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>signature</key><data>kqUFBdQnA0MPzrWKAGcsBshzc5XnLLm9TO+0l0jyZTJYYFiIsRc7m97IYyCCkUt/X5l+ObKfc+06Z5sgu/tAvlA1IE6LKKCEfZQVihFoYeihff3vf6lC821tPuuxuQdReBxyjHy1n94twf2iS8uRR3LoZQhQxpRdh5vDNrHwXOg=</data>
<key>certs</key>
<array>
<data>MIIDOTCCAiGgAwIBAgIBATANBgkqhkiG9w0BAQQFADB+MRMwEQYDVQQKEwpBcHBsZSBJbmMuMRUwEwYDVQQLEwxpVHVuZXMgU3RvcmUxGjAYBgNVBAMTEWlUdW5lcyBTdG9yZSBSb290MQswCQYDVQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTESMBAGA1UEBxMJQ3VwZXJ0aW5vMB4XDTA3MTAwOTIxNTkxNFoXDTA4MTEwNzIxNTkxNFowgYExEzARBgNVBAoTCkFwcGxlIEluYy4xFTATBgNVBAsTDGlUdW5lcyBTdG9yZTEdMBsGA1UEAxMUaVR1bmVzIFN0b3JlIFVSTCBCYWcxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpDYWxpZm9ybmlhMRIwEAYDVQQHEwlDdXBlcnRpbm8wgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAOLMu/eV+eSLVEGtn536FkXAsi/vtpXdHpTNS9muEVlvlkubKXdPDd5jV5WnQpAKY4GZrBn8azP9UKBd85nhIb5nqHQHCmH5DpBK9GZPFpoIdXguJSre8pZwQaYEXQGtTt3nXvk9k8OHs5W/9xFLuD7fpkKSIl+0KLPFULdyEtlvAgMBAAGjQjBAMB0GA1UdDgQWBBTd4gDjfN3LFr3b5G8dvUTpC56JZTAfBgNVHSMEGDAWgBSw2uF/qItKaoFdDKGEVkYeau/lzzANBgkqhkiG9w0BAQQFAAOCAQEAIDpkK1CqTNyl7SEZWvUTRYPdZzn9Y4QjnbSQ6hFkF/PClJkXn3TzMW3ojnxNLphKZxOY53s6D/Hf1B5UX2bJDAnfQ/W8d10SPubGJ1FnUZK8KaKeOzAgks5ob9dnOUe4CZKhZ5FyggIJfgd38Q0s8WF474j5OA/5XRPczgjt+OiIfzEVX5Xqpm1TU7T4013eHze5umqAsd9fFxUXdTC+bl9xdj5VOmqUUfOivoiqiBK2/6XAaDIFF/PEnxVou+BpqkdsyTZz/HiQApve+7NONqS58ciq3Ov+wivpVJKxMyFgcXFWb/d2ZTc04i+fGf0OA4QmkSRcAZOxQkv0oggtTw==</data>
</array>
</dict>
</plist>