iTunes Music Store purchase parameters
Asked Answered
L

1

8

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>
Lockup answered 8/7, 2010 at 14:59 Comment(2)
I realize this is an old post, but just wanted to know if you got any further with this?Scooter
Did you get any further with kbsync thing?..Currently i am working on something similar and could use your help..thanksPostconsonantal
R
0

Not sure what you've tried, but it looks like Base64 encoded binary data. I've put the bin file on an online hex viewer at http://en.webhex.net/view/26f35eed2c15f3760d6b75084057fba2 - might be able to work something out by doing that a few times?

Rappel answered 24/2, 2012 at 23:10 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.