title: AndroidX Security EncryptedSharedPreferences v1.1.0 /w API 21 issue
body: <p>I decided to use new EncryptedSharedPreferences from AndroidX Security library. Since the app is supporting API 21 and higher, I decided to try out this new v1.1.0-alpha02 version, since it supports API 21+</p>
  <p>So, I succeded to make the implementation for API 23+, but for older versions where Android KeyStore is not supported, I couldn't make it right, and there are no exact instructions how the master key should be created to make it work somehow.</p>
  <p>The code for initializing SharedPrefs:</p>
  <pre><code>EncryptedSharedPreferences.create(
          &quot;prefs_name&quot;,
          createMasterKey(),
          App.appContext,
          EncryptedSharedPreferences.PrefKeyEncryptionScheme.AES256_SIV,
          EncryptedSharedPreferences.PrefValueEncryptionScheme.AES256_GCM
      )
  </code></pre>
  <p>with this function for creating master key</p>
  <pre><code>   private fun createMasterKey(): String {
          return if (Build.VERSION.SDK_INT &gt;= Build.VERSION_CODES.M) {
              MasterKeys.getOrCreate(MasterKeys.AES256_GCM_SPEC)
          } else {
              val alias = &quot;my_alias&quot;
              val start: Calendar = GregorianCalendar()
              val end: Calendar = GregorianCalendar()
              end.add(Calendar.YEAR, 30)
  
              val spec = KeyPairGeneratorSpec.Builder(App.appContext)
                  .setAlias(alias)
                  .setSubject(X500Principal(&quot;CN=$alias&quot;))
                  .setSerialNumber(BigInteger.valueOf(abs(alias.hashCode()).toLong()))
                  .setStartDate(start.time).setEndDate(end.time)
                  .build()
  
              val kpGenerator: KeyPairGenerator = KeyPairGenerator.getInstance(
                  &quot;RSA&quot;,
                  &quot;AndroidKeyStore&quot;
              )
              kpGenerator.initialize(spec)
              val kp: KeyPair = kpGenerator.generateKeyPair()
              
              kp.public.toString()
          }
      }
  </code></pre>
  <p>I found this solution somewhere out there, but it's not verified (no confirmation that it actually works), but it seems it should work.</p>
  <p>When using this code block for API 21 and 22, the error appears on creating EncryptedSharedPreferences, and it says:
  Method threw 'com.google.crypto.tink.shaded.protobuf.InvalidProtocolBufferException' exception.
  Protocol message contained an invalid tag (zero).</p>
  <p>Did someone find the solution for this implementation, or do you know why is this happening?
  I think this would help a lot of people, since there is no exact explanation what should this master key contain.</p>
  <p>Thanks in advance!</p>